From 7c5544a352edc17ff15eca549e92cf60c13124d7 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:30:02 -0500 Subject: [PATCH 01/14] Set rho to 0 in inventory and portfolio program files The relaxation penalty of these two benchmarks is already built into the cost vector c (shared-slack formulation), and run.py solves with rho = 0. The program JSONs carried rho = 100.0 and 0.04, so uploading them in the web app added a second penalty and gave a different result (inventory cost 43012.6 instead of 45099.67). With rho = 0 the web app selects Robust and reproduces run.py and results/metrics.json. Co-Authored-By: Claude Opus 5.5 --- benchmarks/LP_inventory_11d/data/program_numeric.json | 2 +- benchmarks/LP_inventory_11d/data/program_symbolic.json | 2 +- benchmarks/LP_portfolio_cvar_13d/data/program_numeric.json | 2 +- benchmarks/LP_portfolio_cvar_13d/data/program_symbolic.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/benchmarks/LP_inventory_11d/data/program_numeric.json b/benchmarks/LP_inventory_11d/data/program_numeric.json index a1911fc..dac31da 100644 --- a/benchmarks/LP_inventory_11d/data/program_numeric.json +++ b/benchmarks/LP_inventory_11d/data/program_numeric.json @@ -311,7 +311,7 @@ "0" ] ], - "rho": "100.0", + "rho": "0", "tau": "0", "confidence": "1e-06", "mode": "numeric", diff --git a/benchmarks/LP_inventory_11d/data/program_symbolic.json b/benchmarks/LP_inventory_11d/data/program_symbolic.json index fa4146b..d244bdf 100644 --- a/benchmarks/LP_inventory_11d/data/program_symbolic.json +++ b/benchmarks/LP_inventory_11d/data/program_symbolic.json @@ -411,7 +411,7 @@ "0" ] ], - "rho": "100.0", + "rho": "0", "tau": "0", "confidence": "1e-06", "mode": "symbolic", diff --git a/benchmarks/LP_portfolio_cvar_13d/data/program_numeric.json b/benchmarks/LP_portfolio_cvar_13d/data/program_numeric.json index dce9264..3e14a6f 100644 --- a/benchmarks/LP_portfolio_cvar_13d/data/program_numeric.json +++ b/benchmarks/LP_portfolio_cvar_13d/data/program_numeric.json @@ -531,7 +531,7 @@ "0" ] ], - "rho": "0.040000", + "rho": "0", "tau": "0", "confidence": "1e-06", "mode": "numeric", diff --git a/benchmarks/LP_portfolio_cvar_13d/data/program_symbolic.json b/benchmarks/LP_portfolio_cvar_13d/data/program_symbolic.json index 728c342..4288b8a 100644 --- a/benchmarks/LP_portfolio_cvar_13d/data/program_symbolic.json +++ b/benchmarks/LP_portfolio_cvar_13d/data/program_symbolic.json @@ -607,7 +607,7 @@ "0" ] ], - "rho": "0.040000", + "rho": "0", "tau": "0", "confidence": "1e-06", "mode": "symbolic", From 98ca58ce88ddabcdab8ec4a868ba63f73d930787 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:40:05 -0500 Subject: [PATCH 02/14] Add a --solver option to every benchmark run.py Each run.py hard-coded solver='MOSEK', so readers without a MOSEK licence could not rerun the benchmarks. All 12 scripts now accept --solver (default MOSEK, which produced the published results), e.g. python benchmarks/LP_half_width_2d/run.py --solver CLARABEL The "Solving ... with" / "Solved with" / "failed" messages print the solver actually used, and the Usage line in each docstring shows the option. The existing fallbacks (SCS for the SDPs, CLARABEL for the robot navigation QP) are unchanged. Co-Authored-By: Claude Opus 5.5 --- benchmarks/LP_growth_bound_12d/run.py | 8 +++++--- benchmarks/LP_half_width_2d/run.py | 12 +++++++++--- benchmarks/LP_inventory_11d/run.py | 12 +++++++++--- benchmarks/LP_portfolio_cvar_13d/run.py | 12 +++++++++--- benchmarks/LP_power_dispatch_120d/run.py | 12 +++++++++--- benchmarks/QP_Iris_minimal_3d/run.py | 12 +++++++++--- benchmarks/QP_cbf_robot_navigation_118d/run.py | 14 ++++++++++---- benchmarks/QP_radiation_therapy_50d/run.py | 12 +++++++++--- benchmarks/SDP_LPV_stability_3d/run.py | 16 +++++++++++----- benchmarks/SDP_Quadratic_Stability_6d/run.py | 16 +++++++++++----- benchmarks/SDP_covariance_wine_15d/run.py | 16 +++++++++++----- benchmarks/SDP_ellipsoid_enclosure_15d/run.py | 16 +++++++++++----- 12 files changed, 113 insertions(+), 45 deletions(-) diff --git a/benchmarks/LP_growth_bound_12d/run.py b/benchmarks/LP_growth_bound_12d/run.py index b217b5e..e2fa1ec 100644 --- a/benchmarks/LP_growth_bound_12d/run.py +++ b/benchmarks/LP_growth_bound_12d/run.py @@ -3,7 +3,7 @@ Solve the Growth Bound benchmark using the scenario approach LP solver. Usage: - python run.py [--mini] + python run.py [--mini] [--solver SOLVER] """ import sys @@ -67,6 +67,8 @@ def load_vector(filepath): def main(): parser = argparse.ArgumentParser() parser.add_argument('--mini', action='store_true', help='Use mini dataset (100 samples)') + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') args = parser.parse_args() print("=" * 65) @@ -113,7 +115,7 @@ def main(): print() # Solve LP - print("Solving LP with MOSEK...") + print(f"Solving LP with {args.solver}...") try: x, zeta, cost, N, k, constraints, degeneracy = solve_lp( deltas=scenarios, @@ -126,7 +128,7 @@ def main(): x_ref=np.zeros((n_vars, 1)), rho=rho, norm_type=2, - solver='MOSEK' + solver=args.solver ) status = "SUCCESS" print(f"Solved successfully") diff --git a/benchmarks/LP_half_width_2d/run.py b/benchmarks/LP_half_width_2d/run.py index 07a3ee3..c079501 100644 --- a/benchmarks/LP_half_width_2d/run.py +++ b/benchmarks/LP_half_width_2d/run.py @@ -3,12 +3,13 @@ Solve the Smallest Enclosing Interval benchmark using the scenario approach LP solver. Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np # Add project root to path for imports @@ -52,6 +53,11 @@ def load_vector(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 65) print("BENCHMARK: Smallest Enclosing Interval (LP)") print("=" * 65) @@ -89,7 +95,7 @@ def main(): beta = 1.0 - params.get('confidence', 0.999999) # Solve LP - print("Solving LP with MOSEK...") + print(f"Solving LP with {args.solver}...") try: x, zeta, cost, N, k, constraints, degeneracy = solve_lp( deltas=scenarios, @@ -102,7 +108,7 @@ def main(): x_ref=np.zeros((n_vars, 1)), rho=rho, norm_type=2, - solver='MOSEK' + solver=args.solver ) status = "SUCCESS" print(f"Solved successfully") diff --git a/benchmarks/LP_inventory_11d/run.py b/benchmarks/LP_inventory_11d/run.py index c47342c..3b06dbf 100644 --- a/benchmarks/LP_inventory_11d/run.py +++ b/benchmarks/LP_inventory_11d/run.py @@ -15,12 +15,13 @@ subject to budget, warehouse capacity, and supplier constraints. Usage: - python test_and_visualize.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np # Add project root to path for imports @@ -97,6 +98,11 @@ def load_vector(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 65) print("BENCHMARK: Fresh Produce Distribution (LP)") print("Regional Distributor Ordering Under Uncertainty") @@ -146,7 +152,7 @@ def main(): # Data files contain the augmented formulation x_aug = [q; zeta] with # rho embedded in c, A_d augmented with -I slack columns, and G/h # extended with zeta >= 0 constraints. See generate.py for details. - print("Solving LP with MOSEK...") + print(f"Solving LP with {args.solver}...") try: x_full, _, cost, N_out, k, constraints, degeneracy = solve_lp( @@ -160,7 +166,7 @@ def main(): x_ref=np.zeros((n_aug, 1)), rho=0.0, norm_type=2, - solver='MOSEK' + solver=args.solver ) x = x_full[:n_vars] zeta = x_full[n_vars:] diff --git a/benchmarks/LP_portfolio_cvar_13d/run.py b/benchmarks/LP_portfolio_cvar_13d/run.py index 2bd92f5..55f23d4 100644 --- a/benchmarks/LP_portfolio_cvar_13d/run.py +++ b/benchmarks/LP_portfolio_cvar_13d/run.py @@ -3,12 +3,13 @@ Solve the CVaR Portfolio benchmark using the scenario approach LP solver. Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np import pandas as pd @@ -92,6 +93,11 @@ def load_vector(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 65) print("BENCHMARK: Pension Fund CVaR Portfolio Optimization (LP)") print("=" * 65) @@ -138,7 +144,7 @@ def main(): # Data files contain the augmented formulation x_aug = [x; zeta] with # rho embedded in c, A_d augmented with -I slack columns, and G/h # extended with zeta >= 0 constraints. See generate.py for details. - print("Solving LP with MOSEK...") + print(f"Solving LP with {args.solver}...") try: x_full, _, cost, N_out, k, constraints, degeneracy = solve_lp( @@ -152,7 +158,7 @@ def main(): x_ref=np.zeros((n_aug, 1)), rho=0.0, norm_type=2, - solver='MOSEK' + solver=args.solver ) x = x_full[:n_vars] zeta = x_full[n_vars:] diff --git a/benchmarks/LP_power_dispatch_120d/run.py b/benchmarks/LP_power_dispatch_120d/run.py index 3222d73..92e0df3 100644 --- a/benchmarks/LP_power_dispatch_120d/run.py +++ b/benchmarks/LP_power_dispatch_120d/run.py @@ -3,12 +3,13 @@ Solve the Economic Dispatch benchmark using the scenario approach LP solver. Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np # Add project root to path for imports @@ -88,6 +89,11 @@ def load_vector(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 65) print("BENCHMARK: Economic Dispatch with Renewable Uncertainty (LP)") print("=" * 65) @@ -136,7 +142,7 @@ def main(): # Data files contain the augmented formulation x_aug = [P; zeta] with # rho embedded in c, A_d augmented with -I slack columns, and G/h # extended with zeta >= 0 constraints. See generate.py for details. - print("Solving LP with MOSEK...") + print(f"Solving LP with {args.solver}...") try: x_full, _, cost, N_out, k, constraints, degeneracy = solve_lp( @@ -150,7 +156,7 @@ def main(): x_ref=np.zeros((n_aug, 1)), rho=0.0, norm_type=2, - solver='MOSEK' + solver=args.solver ) x = x_full[:n_vars] zeta = x_full[n_vars:] diff --git a/benchmarks/QP_Iris_minimal_3d/run.py b/benchmarks/QP_Iris_minimal_3d/run.py index 2de6ec1..afeeaa4 100644 --- a/benchmarks/QP_Iris_minimal_3d/run.py +++ b/benchmarks/QP_Iris_minimal_3d/run.py @@ -3,12 +3,13 @@ Solve the Iris SVM Classification benchmark using the scenario approach QP solver. Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np # Add project root to path for imports @@ -57,6 +58,11 @@ def load_vector(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 65) print("BENCHMARK: Iris SVM Classification (QP)") print("=" * 65) @@ -107,7 +113,7 @@ def b_d(delta): print() # Solve QP - print("Solving QP with MOSEK...") + print(f"Solving QP with {args.solver}...") try: x, zeta, cost, N, k, constraints, degeneracy = solve_qp( deltas=scenarios, @@ -121,7 +127,7 @@ def b_d(delta): x_ref=np.zeros((n_vars, 1)), rho=rho, norm_type=2, - solver='MOSEK' + solver=args.solver ) status = "SUCCESS" print(f"Solved successfully") diff --git a/benchmarks/QP_cbf_robot_navigation_118d/run.py b/benchmarks/QP_cbf_robot_navigation_118d/run.py index 6829b61..98ac99b 100644 --- a/benchmarks/QP_cbf_robot_navigation_118d/run.py +++ b/benchmarks/QP_cbf_robot_navigation_118d/run.py @@ -3,12 +3,13 @@ Solve the CBF Robot Navigation benchmark using the scenario approach QP solver. Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np # Add project root to path for imports @@ -64,6 +65,11 @@ def load_vector(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 65) print("BENCHMARK: QP Robot Navigation") print("=" * 65) @@ -103,7 +109,7 @@ def main(): print() # Solve QP - print("Solving QP with MOSEK...") + print(f"Solving QP with {args.solver}...") try: x, zeta, cost, N, k, constraints, degeneracy = solve_qp( deltas=scenarios, @@ -117,12 +123,12 @@ def main(): x_ref=np.zeros((n_vars, 1)), rho=rho, norm_type=2, - solver='MOSEK' + solver=args.solver ) status = "SUCCESS" print(f"Solved successfully") except Exception as e: - print(f"MOSEK failed: {e}") + print(f"{args.solver} failed: {e}") print("Trying CLARABEL...") try: x, zeta, cost, N, k, constraints, degeneracy = solve_qp( diff --git a/benchmarks/QP_radiation_therapy_50d/run.py b/benchmarks/QP_radiation_therapy_50d/run.py index 6dad747..5547780 100644 --- a/benchmarks/QP_radiation_therapy_50d/run.py +++ b/benchmarks/QP_radiation_therapy_50d/run.py @@ -9,12 +9,13 @@ Clinical Context: Prostate IMRT under patient setup uncertainty (±5mm in 3D). Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import re import numpy as np import pandas as pd @@ -157,6 +158,11 @@ def load_anatomy(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 70) print("BENCHMARK: Prostate IMRT Radiation Therapy (QP)") print("Robust Treatment Under Patient Setup Uncertainty") @@ -212,7 +218,7 @@ def main(): print() # ===== SOLVE USING solve_qp (robust, ρ=0, τ>0) ===== - print("Solving QP with MOSEK...") + print(f"Solving QP with {args.solver}...") try: x, zeta, cost, N_out, k, constraints, degeneracy = solve_qp( @@ -227,7 +233,7 @@ def main(): x_ref=np.zeros((n_vars, 1)), rho=0.0, norm_type=2, - solver='MOSEK' + solver=args.solver ) status = "SUCCESS" print(f"Solved successfully") diff --git a/benchmarks/SDP_LPV_stability_3d/run.py b/benchmarks/SDP_LPV_stability_3d/run.py index 6f89325..db8c964 100644 --- a/benchmarks/SDP_LPV_stability_3d/run.py +++ b/benchmarks/SDP_LPV_stability_3d/run.py @@ -6,12 +6,13 @@ across all sampled parameter values delta in [-0.22, 1]. Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..')) @@ -66,6 +67,11 @@ def load_vector(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 60) print("BENCHMARK: LPV_stability_3d (SDP)") print("Common Lyapunov Function for LPV System") @@ -103,18 +109,18 @@ def main(): print() # Solve - print("Solving SDP with MOSEK...") + print(f"Solving SDP with {args.solver}...") rho_value = 1.0 try: x, zeta, cost, N_out, k, constraints, degeneracy = solve_sdp( deltas=scenarios, F_d=F_d, E=E, c=c, Q=Q, tau=0.0, x_ref=np.zeros(n_vars), rho=rho_value, - norm_type=2, solver='MOSEK' + norm_type=2, solver=args.solver ) - print(f"Solved with MOSEK") + print(f"Solved with {args.solver}") except Exception as e: - print(f"MOSEK failed: {e}") + print(f"{args.solver} failed: {e}") print("Attempting with SCS solver...") try: x, zeta, cost, N_out, k, constraints, degeneracy = solve_sdp( diff --git a/benchmarks/SDP_Quadratic_Stability_6d/run.py b/benchmarks/SDP_Quadratic_Stability_6d/run.py index 3fea3c3..6fea3ef 100644 --- a/benchmarks/SDP_Quadratic_Stability_6d/run.py +++ b/benchmarks/SDP_Quadratic_Stability_6d/run.py @@ -6,12 +6,13 @@ oscillator LPV system with 2D parameter uncertainty. Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..')) @@ -66,6 +67,11 @@ def load_vector(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 60) print("BENCHMARK: Quadratic_Stability_6d (SDP)") print("6D Quadratic Stability with 2D Parameter Uncertainty") @@ -101,17 +107,17 @@ def main(): print() # Solve - print("Solving SDP with MOSEK...") + print(f"Solving SDP with {args.solver}...") try: x, zeta, cost, N_out, k, constraints, degeneracy = solve_sdp( deltas=scenarios, F_d=F_d, E=E_mats, c=c, Q=Q, tau=0.0, x_ref=np.zeros(n_vars), rho=0.0, - norm_type=2, solver='MOSEK' + norm_type=2, solver=args.solver ) - print(f"Solved with MOSEK") + print(f"Solved with {args.solver}") except Exception as e: - print(f"MOSEK failed: {e}") + print(f"{args.solver} failed: {e}") print("Attempting with SCS solver...") try: x, zeta, cost, N_out, k, constraints, degeneracy = solve_sdp( diff --git a/benchmarks/SDP_covariance_wine_15d/run.py b/benchmarks/SDP_covariance_wine_15d/run.py index 971b65b..30199fa 100644 --- a/benchmarks/SDP_covariance_wine_15d/run.py +++ b/benchmarks/SDP_covariance_wine_15d/run.py @@ -14,12 +14,13 @@ Objective: minimize trace(Sigma) Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..')) @@ -78,6 +79,11 @@ def load_parameters(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 60) print("BENCHMARK: Robust Covariance Estimation (SDP)") print("UCI Wine — Minimum-Trace Covariance Domination") @@ -120,7 +126,7 @@ def main(): print() # Solve - print("Solving SDP with MOSEK...") + print(f"Solving SDP with {args.solver}...") try: x, zeta, cost, N_out, k, constraints, degeneracy = solve_sdp( @@ -133,12 +139,12 @@ def main(): x_ref=np.zeros(n_vars), rho=0.0, norm_type=2, - solver='MOSEK' + solver=args.solver ) status = "SUCCESS" - print(f"Solved with MOSEK") + print(f"Solved with {args.solver}") except Exception as e: - print(f"MOSEK failed: {e}") + print(f"{args.solver} failed: {e}") print("Attempting with SCS solver...") try: x, zeta, cost, N_out, k, constraints, degeneracy = solve_sdp( diff --git a/benchmarks/SDP_ellipsoid_enclosure_15d/run.py b/benchmarks/SDP_ellipsoid_enclosure_15d/run.py index 17f1836..167e7ea 100644 --- a/benchmarks/SDP_ellipsoid_enclosure_15d/run.py +++ b/benchmarks/SDP_ellipsoid_enclosure_15d/run.py @@ -13,12 +13,13 @@ Objective: maximize trace(P) = minimize -trace(P) (tightest ellipsoid) Usage: - python run.py + python run.py [--solver SOLVER] """ import sys import os import json +import argparse import numpy as np sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..')) @@ -77,6 +78,11 @@ def load_parameters(filepath): def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--solver', default='MOSEK', + help='CVXPY solver, e.g. MOSEK or CLARABEL (default: MOSEK)') + args = parser.parse_args() + print("=" * 60) print("BENCHMARK: Minimum Enclosing Ellipsoid (SDP)") print("Breast Cancer Wisconsin — Tightest Containment Ellipsoid") @@ -120,7 +126,7 @@ def main(): print() # Solve - print("Solving SDP with MOSEK...") + print(f"Solving SDP with {args.solver}...") try: x, zeta, cost, N_out, k, constraints, degeneracy = solve_sdp( @@ -133,12 +139,12 @@ def main(): x_ref=np.zeros(n_vars), rho=0.0, norm_type=2, - solver='MOSEK' + solver=args.solver ) status = "SUCCESS" - print(f"Solved with MOSEK") + print(f"Solved with {args.solver}") except Exception as e: - print(f"MOSEK failed: {e}") + print(f"{args.solver} failed: {e}") print("Attempting with SCS solver...") try: x, zeta, cost, N_out, k, constraints, degeneracy = solve_sdp( From fc5e0db07a8be60b9699554c01a71fc20765435f Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:40:21 -0500 Subject: [PATCH 03/14] Note extra packages needed by benchmark plot and generate scripts matplotlib, scikit-learn, yfinance and mat73 are deliberately not in requirements.txt. Each benchmark script that imports one of them now says so in a comment below the shebang, with the pip command: - matplotlib: every plot.py, plot_data_only.py and animate.py - scikit-learn: SDP_covariance_wine_15d and SDP_ellipsoid_enclosure_15d generate.py - yfinance: LP_portfolio_cvar_13d/generate.py - mat73: QP_radiation_therapy_50d/generate.py Co-Authored-By: Claude Opus 5.5 --- benchmarks/LP_growth_bound_12d/plot.py | 1 + benchmarks/LP_half_width_2d/plot.py | 1 + benchmarks/LP_inventory_11d/plot.py | 1 + benchmarks/LP_portfolio_cvar_13d/generate.py | 1 + benchmarks/LP_portfolio_cvar_13d/plot.py | 1 + benchmarks/LP_power_dispatch_120d/plot.py | 1 + benchmarks/QP_Iris_minimal_3d/plot.py | 1 + benchmarks/QP_Iris_minimal_3d/plot_data_only.py | 1 + benchmarks/QP_cbf_robot_navigation_118d/animate.py | 1 + benchmarks/QP_cbf_robot_navigation_118d/plot.py | 1 + benchmarks/QP_radiation_therapy_50d/generate.py | 1 + benchmarks/QP_radiation_therapy_50d/plot.py | 1 + benchmarks/SDP_LPV_stability_3d/plot.py | 1 + benchmarks/SDP_LPV_stability_3d/plot_data_only.py | 1 + benchmarks/SDP_Quadratic_Stability_6d/plot.py | 1 + benchmarks/SDP_covariance_wine_15d/generate.py | 1 + benchmarks/SDP_covariance_wine_15d/plot.py | 1 + benchmarks/SDP_ellipsoid_enclosure_15d/generate.py | 1 + benchmarks/SDP_ellipsoid_enclosure_15d/plot.py | 1 + 19 files changed, 19 insertions(+) diff --git a/benchmarks/LP_growth_bound_12d/plot.py b/benchmarks/LP_growth_bound_12d/plot.py index 66b4168..1646760 100644 --- a/benchmarks/LP_growth_bound_12d/plot.py +++ b/benchmarks/LP_growth_bound_12d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the growth bound benchmark.""" import sys, os, json diff --git a/benchmarks/LP_half_width_2d/plot.py b/benchmarks/LP_half_width_2d/plot.py index 047b6d2..7793e12 100644 --- a/benchmarks/LP_half_width_2d/plot.py +++ b/benchmarks/LP_half_width_2d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the smallest enclosing interval benchmark.""" import sys, os, json diff --git a/benchmarks/LP_inventory_11d/plot.py b/benchmarks/LP_inventory_11d/plot.py index 300b6f7..37b0768 100644 --- a/benchmarks/LP_inventory_11d/plot.py +++ b/benchmarks/LP_inventory_11d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the inventory benchmark.""" import sys, os, json diff --git a/benchmarks/LP_portfolio_cvar_13d/generate.py b/benchmarks/LP_portfolio_cvar_13d/generate.py index 47a3816..bbc241d 100644 --- a/benchmarks/LP_portfolio_cvar_13d/generate.py +++ b/benchmarks/LP_portfolio_cvar_13d/generate.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires yfinance (not in requirements.txt): pip install yfinance """ Golden State Teachers' Pension Fund CVaR Portfolio Benchmark diff --git a/benchmarks/LP_portfolio_cvar_13d/plot.py b/benchmarks/LP_portfolio_cvar_13d/plot.py index 7dcdbbf..237e5d5 100644 --- a/benchmarks/LP_portfolio_cvar_13d/plot.py +++ b/benchmarks/LP_portfolio_cvar_13d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the CVaR portfolio benchmark.""" import sys, os, json diff --git a/benchmarks/LP_power_dispatch_120d/plot.py b/benchmarks/LP_power_dispatch_120d/plot.py index b8eeaa9..dcd630a 100644 --- a/benchmarks/LP_power_dispatch_120d/plot.py +++ b/benchmarks/LP_power_dispatch_120d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the power dispatch benchmark.""" import sys, os, json diff --git a/benchmarks/QP_Iris_minimal_3d/plot.py b/benchmarks/QP_Iris_minimal_3d/plot.py index 8e95afe..15351b8 100644 --- a/benchmarks/QP_Iris_minimal_3d/plot.py +++ b/benchmarks/QP_Iris_minimal_3d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the Iris SVM classification benchmark.""" import sys, os, json diff --git a/benchmarks/QP_Iris_minimal_3d/plot_data_only.py b/benchmarks/QP_Iris_minimal_3d/plot_data_only.py index ee1bbf7..9b7a810 100644 --- a/benchmarks/QP_Iris_minimal_3d/plot_data_only.py +++ b/benchmarks/QP_Iris_minimal_3d/plot_data_only.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a paper-ready figure showing only the Iris data (no solution overlay).""" import os diff --git a/benchmarks/QP_cbf_robot_navigation_118d/animate.py b/benchmarks/QP_cbf_robot_navigation_118d/animate.py index 4e08dc4..cb555fe 100644 --- a/benchmarks/QP_cbf_robot_navigation_118d/animate.py +++ b/benchmarks/QP_cbf_robot_navigation_118d/animate.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a trajectory animation GIF for the robot navigation benchmark.""" import sys, os, json diff --git a/benchmarks/QP_cbf_robot_navigation_118d/plot.py b/benchmarks/QP_cbf_robot_navigation_118d/plot.py index afd58f1..9b85421 100644 --- a/benchmarks/QP_cbf_robot_navigation_118d/plot.py +++ b/benchmarks/QP_cbf_robot_navigation_118d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the robot navigation benchmark.""" import sys, os, json diff --git a/benchmarks/QP_radiation_therapy_50d/generate.py b/benchmarks/QP_radiation_therapy_50d/generate.py index a0d9db1..9855a52 100644 --- a/benchmarks/QP_radiation_therapy_50d/generate.py +++ b/benchmarks/QP_radiation_therapy_50d/generate.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires mat73 (not in requirements.txt): pip install mat73 """ Prostate Brachytherapy Benchmark Data Generator (TROTS Dataset) diff --git a/benchmarks/QP_radiation_therapy_50d/plot.py b/benchmarks/QP_radiation_therapy_50d/plot.py index 8b1378f..9942aaf 100644 --- a/benchmarks/QP_radiation_therapy_50d/plot.py +++ b/benchmarks/QP_radiation_therapy_50d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the prostate brachytherapy benchmark.""" import sys, os, json diff --git a/benchmarks/SDP_LPV_stability_3d/plot.py b/benchmarks/SDP_LPV_stability_3d/plot.py index c9a52a7..1346e9d 100644 --- a/benchmarks/SDP_LPV_stability_3d/plot.py +++ b/benchmarks/SDP_LPV_stability_3d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the LPV Stability 3D benchmark.""" import sys, os, json diff --git a/benchmarks/SDP_LPV_stability_3d/plot_data_only.py b/benchmarks/SDP_LPV_stability_3d/plot_data_only.py index 1ebe2f3..524e4a0 100644 --- a/benchmarks/SDP_LPV_stability_3d/plot_data_only.py +++ b/benchmarks/SDP_LPV_stability_3d/plot_data_only.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a paper-ready figure showing only the LPV trajectories (no Lyapunov ellipse).""" import os diff --git a/benchmarks/SDP_Quadratic_Stability_6d/plot.py b/benchmarks/SDP_Quadratic_Stability_6d/plot.py index cc7b6e2..78a0fe0 100644 --- a/benchmarks/SDP_Quadratic_Stability_6d/plot.py +++ b/benchmarks/SDP_Quadratic_Stability_6d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the Quadratic Stability 6D benchmark.""" import sys, os, json diff --git a/benchmarks/SDP_covariance_wine_15d/generate.py b/benchmarks/SDP_covariance_wine_15d/generate.py index c225580..4d441f4 100644 --- a/benchmarks/SDP_covariance_wine_15d/generate.py +++ b/benchmarks/SDP_covariance_wine_15d/generate.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires scikit-learn (not in requirements.txt): pip install scikit-learn """ Generate robust covariance estimation data from UCI Wine dataset for SDP formulation. diff --git a/benchmarks/SDP_covariance_wine_15d/plot.py b/benchmarks/SDP_covariance_wine_15d/plot.py index f40be3b..a3e5da2 100644 --- a/benchmarks/SDP_covariance_wine_15d/plot.py +++ b/benchmarks/SDP_covariance_wine_15d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the wine covariance estimation benchmark.""" import sys, os, json diff --git a/benchmarks/SDP_ellipsoid_enclosure_15d/generate.py b/benchmarks/SDP_ellipsoid_enclosure_15d/generate.py index e951f82..0a22aaa 100644 --- a/benchmarks/SDP_ellipsoid_enclosure_15d/generate.py +++ b/benchmarks/SDP_ellipsoid_enclosure_15d/generate.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires scikit-learn (not in requirements.txt): pip install scikit-learn """ Generate minimum enclosing ellipsoid data from Breast Cancer Wisconsin dataset for SDP. diff --git a/benchmarks/SDP_ellipsoid_enclosure_15d/plot.py b/benchmarks/SDP_ellipsoid_enclosure_15d/plot.py index d708324..13729ae 100644 --- a/benchmarks/SDP_ellipsoid_enclosure_15d/plot.py +++ b/benchmarks/SDP_ellipsoid_enclosure_15d/plot.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Requires matplotlib (not in requirements.txt): pip install matplotlib """Generate a clean, paper-ready figure for the minimum enclosing ellipsoid benchmark.""" import sys, os, json From b4fde85ded4068afec7f2e10dd2d84bda539ddb4 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:42:01 -0500 Subject: [PATCH 04/14] Bring benchmark READMEs in line with the current files and results - Expected Results and the risk bounds quoted in Results now match results/metrics.json (e.g. half width 0.2073 -> 0.2085, Iris 0.1430 -> 0.1441, LPV 0.1853 -> 0.1858). Also corrected: growth bound cost and the sign of M* and b*, radiation therapy k = 5 with degeneracy (was k = 6, none), the portfolio weights and CVaR, and the LPV matrix P. - File listings match the files in each folder: the per-matrix CSVs (A_d.csv, c.csv, F_0.csv, ...) no longer exist, program_symbolic.json was listed twice (once as "MATLAB"), and program_numeric.json, scenarios_numeric.csv and a few scripts and figures were missing. - Manual method uses the real option names (Robust, Regularization, Relaxation) and points to the fields of program_symbolic.json instead of the removed CSV files. Inventory and portfolio use Robust with rho = 0 because their penalty is already in c. - The one-shot method mentions the numeric program and scenarios. - Usage documents the new run.py --solver option. Co-Authored-By: Claude Opus 5.5 --- benchmarks/LP_growth_bound_12d/README.md | 42 +++++++------- benchmarks/LP_half_width_2d/README.md | 29 +++++----- benchmarks/LP_inventory_11d/README.md | 41 +++++++------- benchmarks/LP_portfolio_cvar_13d/README.md | 39 ++++++------- benchmarks/LP_power_dispatch_120d/README.md | 37 ++++++------ benchmarks/QP_Iris_minimal_3d/README.md | 39 ++++++------- .../QP_cbf_robot_navigation_118d/README.md | 44 +++++++-------- benchmarks/QP_radiation_therapy_50d/README.md | 45 +++++++-------- benchmarks/SDP_LPV_stability_3d/README.md | 56 +++++++++---------- .../SDP_Quadratic_Stability_6d/README.md | 43 ++++++-------- benchmarks/SDP_covariance_wine_15d/README.md | 45 +++++++-------- .../SDP_ellipsoid_enclosure_15d/README.md | 41 ++++++-------- 12 files changed, 229 insertions(+), 272 deletions(-) diff --git a/benchmarks/LP_growth_bound_12d/README.md b/benchmarks/LP_growth_bound_12d/README.md index c577866..ed3ef60 100644 --- a/benchmarks/LP_growth_bound_12d/README.md +++ b/benchmarks/LP_growth_bound_12d/README.md @@ -20,10 +20,10 @@ This is a Linear Program with 12 decision variables: 9 entries of the growth mat The LP solves with N = 3127 sampled trajectories. The optimal growth matrix and bias are: - M* = [[-1.000, 0.000, 0.005], [0.000, -1.000, 0.009], [0.000, 0.000, -1.000]] - b* = [-1.000, -1.000, -1.000] + M* = [[1.000, 0.000, 0.005], [0.000, 1.000, 0.009], [0.000, 0.000, 1.000]] + b* = [1.000, 1.000, 1.000] -With pre-selected bias γ = 0.067 and β = 10⁻⁶, the support set size is k = 6 and degeneracy was detected, so no lower bound on risk can be certified. The upper bound is ε̄ = 0.0101. +With pre-selected bias γ = 0.067 and β = 10⁻⁶, the support set size is k = 6 and degeneracy was detected, so no lower bound on risk can be certified. The upper bound is ε̄ = 0.0103. ## Files @@ -35,15 +35,12 @@ LP_growth_bound_12d/ ├── run.py Solve the LP and print results ├── plot.py Generate the paper figure ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) -│ ├── A_d.csv Scenario-dependent constraint matrix (3 × 12 expressions) -│ ├── b_d.csv Scenario-dependent RHS (3 × 1 expressions) -│ ├── c.csv Objective vector (12 × 1) -│ ├── G.csv Hard constraint matrix (6 × 12) -│ ├── h.csv Hard constraint RHS (6 × 1) +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) │ ├── growth_bound.csv Full dataset (3127 × 6) -│ └── growth_bound_mini.csv Mini dataset (99 × 6) +│ ├── growth_bound_mini.csv Mini dataset (99 × 6) +│ ├── scenarios.csv Full dataset for the web interface (same as growth_bound.csv) +│ └── scenarios_numeric.csv Per-row-flattened matrices for numeric mode └── results/ ├── metrics.json Solver output (growth matrix, bias, risk bounds) ├── solution.csv Raw solution vector @@ -57,9 +54,10 @@ LP_growth_bound_12d/ # Regenerate trajectory data python generate.py -# Solve the LP (use --mini for faster testing) +# Solve the LP (use --mini for faster testing; MOSEK by default, use --solver to pick another, e.g. CLARABEL) python run.py python run.py --mini +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -71,25 +69,25 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method 1. Select the **LP** tab, formulation: **Robust** -2. Upload or enter each matrix: - - **A(delta)**: `data/A_d.csv` - - **b(delta)**: `data/b_d.csv` - - **c**: `data/c.csv` - - **G**: `data/G.csv` - - **h**: `data/h.csv` +2. Enter each matrix with its **Edit** button, using the matching field of `data/program_symbolic.json`: + - **A(delta)**: `A_d` + - **b(delta)**: `b_d` + - **c**: `c` + - **G**: `G` + - **h**: `h` 3. Set parameters: rho = 0, tau = 0, confidence (beta) = 1e-06 4. Upload `data/scenarios.csv` in the Scenarios box 5. Press **Solve** ### Expected Results -- Optimal cost: -2.9862583119393014 +- Optimal cost: 3.0137485232272665 - Complexity k: 6 -- Risk bounds: [0.0, 0.010092109023134854] +- Risk bounds: [0.0, 0.010266487573906823] (degeneracy detected, so the lower bound is not certified) diff --git a/benchmarks/LP_half_width_2d/README.md b/benchmarks/LP_half_width_2d/README.md index e96bceb..dd925b9 100644 --- a/benchmarks/LP_half_width_2d/README.md +++ b/benchmarks/LP_half_width_2d/README.md @@ -16,7 +16,7 @@ No regularisation (τ = 0) or slack penalty (ρ = 0). ![Smallest Enclosing Interval](results/half_width.png) -The LP solves with N = 100 data points. The optimal interval is [0.002, 0.999] with center 0.501 and half-width 0.498. The complexity is k = 2 (the two extreme data points define the interval). With β = 10⁻⁶, the risk bounds are ε̲ = 0 and ε̄ = 0.207. +The LP solves with N = 100 data points. The optimal interval is [0.002, 0.999] with center 0.501 and half-width 0.498. The complexity is k = 2 (the two extreme data points define the interval). With β = 10⁻⁶, the risk bounds are ε̲ = 0 and ε̄ = 0.209. ## Files @@ -27,12 +27,10 @@ LP_half_width_2d/ ├── run.py Solve the LP and print results ├── plot.py Generate the paper figure ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) -│ ├── A_d.csv Scenario-dependent constraint matrix (2 × 2) -│ ├── b_d.csv Scenario-dependent RHS (2 × 1) -│ ├── c.csv Objective vector (2 × 1) -│ └── scenarios.csv 100 data points sampled from [0, 1] +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) +│ ├── scenarios.csv 100 data points sampled from [0, 1] +│ └── scenarios_numeric.csv Per-row-flattened matrices for numeric mode └── results/ ├── metrics.json Solver output (center, half-width, risk bounds) ├── solution.csv Raw solution vector @@ -43,8 +41,9 @@ LP_half_width_2d/ ## Usage ```bash -# Solve the LP +# Solve the LP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -56,17 +55,17 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method 1. Select the **LP** tab, formulation: **Robust** -2. Upload or enter each matrix: - - **A(delta)**: `data/A_d.csv` - - **b(delta)**: `data/b_d.csv` - - **c**: `data/c.csv` +2. Enter each matrix with its **Edit** button, using the matching field of `data/program_symbolic.json`: + - **A(delta)**: `A_d` + - **b(delta)**: `b_d` + - **c**: `c` 3. Set parameters: rho = 0, tau = 0, confidence (beta) = 1e-06 4. Upload `data/scenarios.csv` in the Scenarios box 5. Press **Solve** @@ -75,4 +74,4 @@ python plot.py - Optimal cost: 0.498309968223239 - Complexity k: 2 -- Risk bounds: [0.0, 0.20729497825494037] +- Risk bounds: [0.0, 0.20852406037505716] diff --git a/benchmarks/LP_inventory_11d/README.md b/benchmarks/LP_inventory_11d/README.md index 51e0146..3eb2e22 100644 --- a/benchmarks/LP_inventory_11d/README.md +++ b/benchmarks/LP_inventory_11d/README.md @@ -26,7 +26,7 @@ Each scenario delta_i in R^15 encodes uncertain yields (delta[0:5]), demands (de ![Inventory Results](results/inventory.png) -The LP solves in 9.07 seconds with N = 500 scenarios. The full budget of $12,000 is used. The penalty rho = 100 implies a cost per case of lost sales; the expected daily loss from stockouts is only $66.20 (about 0.5% of the ordering budget). The LP had complexity k = 7, no degeneracy, and risk bounds [0.000, 0.066] at 99.9999% confidence (beta = 10^{-6}). +The LP solves in 9.07 seconds with N = 500 scenarios. The full budget of $12,000 is used. The penalty rho = 100 implies a cost per case of lost sales; the expected daily loss from stockouts is only $66.20 (about 0.5% of the ordering budget). The LP had complexity k = 7, no degeneracy, and risk bounds [0.000, 0.067] at 99.9999% confidence (beta = 10^{-6}). | Product | Order (cases) | Mean Demand | Service Level (%) | |---------|--------------|-------------|-------------------| @@ -48,14 +48,10 @@ LP_inventory_11d/ ├── run.py Solve the LP and print results ├── plot.py Generate the paper figure ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) -│ ├── A_d.csv Augmented scenario constraint matrix (6 x 11) -│ ├── b_d.csv Scenario-dependent RHS vector (6 x 1) -│ ├── c.csv Augmented cost vector (11 x 1, includes rho) -│ ├── G.csv Augmented hard constraint matrix (17 x 11) -│ ├── h.csv Hard constraint RHS (17 x 1) -│ └── scenarios.csv 500 x 15 uncertainty scenarios +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) +│ ├── scenarios.csv 500 x 15 uncertainty scenarios +│ └── scenarios_numeric.csv Per-row-flattened matrices for numeric mode └── results/ ├── metrics.json Solver output (cost, risk bounds, etc.) ├── solution.csv Raw solution vector @@ -69,8 +65,9 @@ LP_inventory_11d/ # Regenerate scenarios (optional) python generate.py --n_scenarios 500 --seed 42 -# Solve the LP +# Solve the LP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -82,25 +79,25 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method -1. Select the **LP** tab, formulation: **Robust + Relaxation** -2. Upload or enter each matrix: - - **A(delta)**: `data/A_d.csv` - - **b(delta)**: `data/b_d.csv` - - **c**: `data/c.csv` - - **G**: `data/G.csv` - - **h**: `data/h.csv` -3. Set parameters: rho = 100.0, tau = 0, confidence (beta) = 1e-06 +1. Select the **LP** tab, formulation: **Robust** (the penalty rho = 100 is already in c) +2. Enter each matrix with its **Edit** button, using the matching field of `data/program_symbolic.json`: + - **A(delta)**: `A_d` + - **b(delta)**: `b_d` + - **c**: `c` + - **G**: `G` + - **h**: `h` +3. Set parameters: rho = 0, tau = 0, confidence (beta) = 1e-06 4. Upload `data/scenarios.csv` in the Scenarios box 5. Press **Solve** ### Expected Results -- Optimal cost: 45099.672322171755 +- Optimal cost: 45099.672322171806 - Complexity k: 7 -- Risk bounds: [0.0, 0.06550756473687944] +- Risk bounds: [0.0, 0.0666183782973094] diff --git a/benchmarks/LP_portfolio_cvar_13d/README.md b/benchmarks/LP_portfolio_cvar_13d/README.md index 1d55043..30e3088 100644 --- a/benchmarks/LP_portfolio_cvar_13d/README.md +++ b/benchmarks/LP_portfolio_cvar_13d/README.md @@ -27,7 +27,7 @@ Each scenario delta_i in R^12 encodes 8 asset returns (delta[0:8]), a market str ![CVaR Portfolio Results](results/portfolio_cvar.png) -The LP solves with N = 1,255 market scenarios (one per historical trading day). The optimizer tilts heavily toward alternatives: GLD (23.2%) and VNQ (21.8%) dominate, while equities sit at the 30% regulatory minimum and fixed income at 25%. This defensive posture minimizes tail risk — the CVaR(95%) is only 1.21% daily loss. The LP had complexity k = 3, no degeneracy, and risk bounds [0.0000, 0.0200]. +The LP solves with N = 1,255 market scenarios (one per historical trading day). The optimizer tilts heavily toward alternatives: GLD (23.9%) and VNQ (21.1%) dominate, while equities sit at the 30% regulatory minimum and fixed income at 25%. This defensive posture minimizes tail risk — the CVaR(95%) is only 1.20% daily loss. The LP had complexity k = 3, no degeneracy, and risk bounds [0.0000, 0.0203]. ## Files @@ -39,14 +39,10 @@ LP_portfolio_cvar_13d/ ├── run.py Solve the LP and print results ├── plot.py Generate the paper figure ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) -│ ├── A_d.csv Augmented scenario constraint matrix (4 x 13) -│ ├── b_d.csv Scenario-dependent RHS vector (4 x 1, all zeros) -│ ├── c.csv Augmented objective vector (13 x 1, includes rho) -│ ├── G.csv Augmented hard constraint matrix (27 x 13) -│ ├── h.csv Hard constraint RHS (27 x 1) +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) │ ├── scenarios.csv 1255 x 12 uncertainty scenarios +│ ├── scenarios_numeric.csv Per-row-flattened matrices for numeric mode │ ├── assets.csv Asset metadata │ ├── historical_prices.csv 5-year ETF price history │ └── historical_returns.csv Daily returns @@ -63,8 +59,9 @@ LP_portfolio_cvar_13d/ # Regenerate scenarios (requires yfinance and internet) python generate.py --seed 42 -# Solve the LP +# Solve the LP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -76,25 +73,25 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method -1. Select the **LP** tab, formulation: **Robust + Relaxation** -2. Upload or enter each matrix: - - **A(delta)**: `data/A_d.csv` - - **b(delta)**: `data/b_d.csv` - - **c**: `data/c.csv` - - **G**: `data/G.csv` - - **h**: `data/h.csv` -3. Set parameters: rho = 0.015936, tau = 0, confidence (beta) = 1e-06 +1. Select the **LP** tab, formulation: **Robust** (the slack penalty is already in c) +2. Enter each matrix with its **Edit** button, using the matching field of `data/program_symbolic.json`: + - **A(delta)**: `A_d` + - **b(delta)**: `b_d` + - **c**: `c` + - **G**: `G` + - **h**: `h` +3. Set parameters: rho = 0, tau = 0, confidence (beta) = 1e-06 4. Upload `data/scenarios.csv` in the Scenarios box 5. Press **Solve** ### Expected Results -- Optimal cost: 0.05133721274593786 +- Optimal cost: 0.05335645682574842 - Complexity k: 3 -- Risk bounds: [0.0, 0.02002552248652564] +- Risk bounds: [0.0, 0.020289284798068057] diff --git a/benchmarks/LP_power_dispatch_120d/README.md b/benchmarks/LP_power_dispatch_120d/README.md index c2be8ad..113a5a7 100644 --- a/benchmarks/LP_power_dispatch_120d/README.md +++ b/benchmarks/LP_power_dispatch_120d/README.md @@ -22,7 +22,7 @@ Each scenario delta_i in R^48 encodes uncertain hourly wind generation (delta[0: ![Power Dispatch Results](results/power_dispatch.png) -The LP solves with N = 150 scenarios. Total cost is $831,357 comprising $537,670 in generation cost and $293,687 in power imbalance penalty. Coal (cheapest at $30/MWh) provides baseload at 284-500 MW. Gas 1 ($40/MWh) ramps to cover evening peak, reaching 300 MW at hour 18. Gas 2 ($50/MWh) sits at its 75 MW minimum throughout. The LP had complexity k = 34, no degeneracy, and risk bounds [0.079, 0.443] at 99.9999% confidence (beta = 10^{-6}). +The LP solves with N = 150 scenarios. Total cost is $831,357 comprising $537,670 in generation cost and $293,687 in power imbalance penalty. Coal (cheapest at $30/MWh) provides baseload at 284-500 MW. Gas 1 ($40/MWh) ramps to cover evening peak, reaching 300 MW at hour 18. Gas 2 ($50/MWh) sits at its 75 MW minimum throughout. The LP had complexity k = 34, no degeneracy, and risk bounds [0.079, 0.450] at 99.9999% confidence (beta = 10^{-6}). ## Files @@ -34,16 +34,12 @@ LP_power_dispatch_120d/ ├── run.py Solve the LP and print results ├── plot.py Generate the paper figure ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) -│ ├── A_d.csv Augmented scenario constraint matrix (48 x 120) -│ ├── b_d.csv Scenario-dependent RHS vector (48 x 1) -│ ├── c.csv Augmented cost vector (120 x 1, includes rho) -│ ├── G.csv Augmented hard constraint matrix (330 x 120) -│ ├── h.csv Hard constraint RHS (330 x 1) +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) │ ├── demand.csv Hourly demand profile (24 rows) │ ├── generators.txt Generator parameters -│ └── scenarios.csv 150 x 48 renewable generation scenarios +│ ├── scenarios.csv 150 x 48 renewable generation scenarios +│ └── scenarios_numeric.csv Per-row-flattened matrices for numeric mode └── results/ ├── metrics.json Solver output (cost, dispatch, risk bounds) ├── solution.csv Raw solution vector @@ -57,8 +53,9 @@ LP_power_dispatch_120d/ # Regenerate scenarios (optional) python generate.py --n_scenarios 150 --seed 42 -# Solve the LP +# Solve the LP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -70,25 +67,25 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method 1. Select the **LP** tab, formulation: **Robust** -2. Upload or enter each matrix: - - **A(delta)**: `data/A_d.csv` - - **b(delta)**: `data/b_d.csv` - - **c**: `data/c.csv` - - **G**: `data/G.csv` - - **h**: `data/h.csv` +2. Enter each matrix with its **Edit** button, using the matching field of `data/program_symbolic.json`: + - **A(delta)**: `A_d` + - **b(delta)**: `b_d` + - **c**: `c` + - **G**: `G` + - **h**: `h` 3. Set parameters: rho = 0, tau = 0, confidence (beta) = 1e-06 4. Upload `data/scenarios.csv` in the Scenarios box 5. Press **Solve** ### Expected Results -- Optimal cost: 831357.4274826923 +- Optimal cost: 831357.4274827515 - Complexity k: 34 -- Risk bounds: [0.07906891773454847, 0.44250483819283526] +- Risk bounds: [0.0790688063794126, 0.44961507555718216] diff --git a/benchmarks/QP_Iris_minimal_3d/README.md b/benchmarks/QP_Iris_minimal_3d/README.md index 32d4079..738563c 100644 --- a/benchmarks/QP_Iris_minimal_3d/README.md +++ b/benchmarks/QP_Iris_minimal_3d/README.md @@ -16,7 +16,7 @@ A(δᵢ) = [-δᵢ(1)·δᵢ(3), -δᵢ(2)·δᵢ(3), -δᵢ(3)], b(δᵢ) = 1 ![Iris SVM Classification](results/iris_svm.png) -The QP solves with N = 150 data points achieving 100% training accuracy. The optimal classifier is 3.79 = 1.29x₁ + 0.82x₂ with margin 1.304. The complexity is k = 2 (two support vectors). With β = 10⁻⁶, the risk bounds are ε̲ = 0 and ε̄ = 0.143. +The QP solves with N = 150 data points achieving 100% training accuracy. The optimal classifier is 3.79 = 1.29x₁ + 0.82x₂ with margin 1.304. The complexity is k = 2 (two support vectors). With β = 10⁻⁶, the risk bounds are ε̲ = 0 and ε̄ = 0.144. ## Files @@ -26,26 +26,27 @@ QP_Iris_minimal_3d/ ├── parameters.txt Solver parameters (rho, tau, confidence) ├── run.py Solve the QP and print results ├── plot.py Generate the paper figure +├── plot_data_only.py Generate a figure of the data only (no classifier) ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) -│ ├── A_d.csv Scenario-dependent constraint (1 × 3 expression) -│ ├── b_d.csv Scenario-dependent RHS (constant = 1) -│ ├── c.csv Linear objective vector (3 × 1) -│ ├── Q.csv Quadratic objective matrix (3 × 3) -│ └── scenarios.csv 150 samples [petal_length, petal_width, label] +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) +│ ├── scenarios.csv 150 samples [petal_length, petal_width, label] +│ └── scenarios_numeric.csv Per-row-flattened matrices for numeric mode └── results/ ├── metrics.json Solver output (hyperplane, margin, risk bounds) ├── solution.csv Raw solution vector [w1, w2, b] ├── iris_svm.png Paper figure (300 dpi) - └── iris_svm.pdf Paper figure (vector) + ├── iris_svm.pdf Paper figure (vector) + ├── iris_data_only.png Data-only figure (300 dpi) + └── iris_data_only.pdf Data-only figure (vector) ``` ## Usage ```bash -# Solve the QP +# Solve the QP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -57,24 +58,24 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method 1. Select the **QP** tab, formulation: **Robust** -2. Upload or enter each matrix: - - **A(delta)**: `data/A_d.csv` - - **b(delta)**: `data/b_d.csv` - - **c**: `data/c.csv` - - **Q**: `data/Q.csv` +2. Enter each matrix with its **Edit** button, using the matching field of `data/program_symbolic.json`: + - **A(delta)**: `A_d` + - **b(delta)**: `b_d` + - **c**: `c` + - **Q**: `Q` 3. Set parameters: rho = 0, tau = 0, confidence (beta) = 1e-06 4. Upload `data/scenarios.csv` in the Scenarios box 5. Press **Solve** ### Expected Results -- Optimal cost: 1.176470626281622 +- Optimal cost: 1.1764706262816014 - Complexity k: 2 -- Risk bounds: [0.0, 0.14300981911209715] +- Risk bounds: [0.0, 0.14409952527843412] diff --git a/benchmarks/QP_cbf_robot_navigation_118d/README.md b/benchmarks/QP_cbf_robot_navigation_118d/README.md index 8c0dab8..bac6902 100644 --- a/benchmarks/QP_cbf_robot_navigation_118d/README.md +++ b/benchmarks/QP_cbf_robot_navigation_118d/README.md @@ -24,7 +24,7 @@ This is a Quadratic Program with 118 decision variables: 80 states (position and ![QP Robot Navigation](results/cbf_navigation.png) -The QP solves with N = 500 scenarios. The optimal trajectory has path length 9.79 m over 8.0 s, arcing smoothly above the wall with a minimum clearance of 0.19 m from the safety boundary. The complexity is k = 1 (one support constraint). With beta = 10^{-6}, the risk bounds are eps_lower = 0 and eps_upper = 0.0400. +The QP solves with N = 500 scenarios. The optimal trajectory has path length 9.79 m over 8.0 s, arcing smoothly above the wall with a minimum clearance of 0.19 m from the safety boundary. The complexity is k = 1 (one support constraint). With beta = 10^{-6}, the risk bounds are eps_lower = 0 and eps_upper = 0.0403. ## Files @@ -35,21 +35,18 @@ QP_cbf_robot_navigation_118d/ ├── generate.py Generate benchmark data (scenarios + QP matrices) ├── run.py Solve the QP and print results ├── plot.py Generate the paper figure +├── animate.py Generate the trajectory animation GIF ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) -│ ├── A_d.csv Scenario-dependent constraint matrix (3 x 118) -│ ├── b_d.csv Scenario-dependent RHS (3 expressions with delta) -│ ├── c.csv Linear objective vector (118 x 1) -│ ├── Q.csv Quadratic objective matrix (118 x 118) -│ ├── G.csv Hard constraint matrix (320 x 118) -│ ├── h.csv Hard constraint RHS (320 x 1) -│ └── scenarios.csv 500 samples (1D wall face perturbations) +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) +│ ├── scenarios.csv 500 samples (1D wall face perturbations) +│ └── scenarios_numeric.csv Per-row-flattened matrices for numeric mode └── results/ ├── metrics.json Solver output (trajectory, clearances, risk bounds) ├── solution.csv Raw solution vector (118 x 1) ├── cbf_navigation.png Paper figure (300 dpi) - └── cbf_navigation.pdf Paper figure (vector) + ├── cbf_navigation.pdf Paper figure (vector) + └── trajectory_animation.gif Trajectory animation ``` ## Usage @@ -58,8 +55,9 @@ QP_cbf_robot_navigation_118d/ # Generate benchmark data (optional, data already provided) python generate.py [--n_scenarios 500] [--sigma 0.05] -# Solve the QP +# Solve the QP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -71,26 +69,26 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method 1. Select the **QP** tab, formulation: **Robust** -2. Upload or enter each matrix: - - **A(delta)**: `data/A_d.csv` - - **b(delta)**: `data/b_d.csv` - - **c**: `data/c.csv` - - **G**: `data/G.csv` - - **h**: `data/h.csv` - - **Q**: `data/Q.csv` +2. Enter each matrix with its **Edit** button, using the matching field of `data/program_symbolic.json`: + - **A(delta)**: `A_d` + - **b(delta)**: `b_d` + - **c**: `c` + - **G**: `G` + - **h**: `h` + - **Q**: `Q` 3. Set parameters: rho = 0, tau = 0, confidence (beta) = 1e-06 4. Upload `data/scenarios.csv` in the Scenarios box 5. Press **Solve** ### Expected Results -- Optimal cost: -13777.807262403046 +- Optimal cost: -13777.807262404083 - Complexity k: 1 -- Risk bounds: [0.0, 0.04000231437711046] +- Risk bounds: [0.0, 0.04027646044222639] diff --git a/benchmarks/QP_radiation_therapy_50d/README.md b/benchmarks/QP_radiation_therapy_50d/README.md index 9157910..0b1f1b5 100644 --- a/benchmarks/QP_radiation_therapy_50d/README.md +++ b/benchmarks/QP_radiation_therapy_50d/README.md @@ -30,7 +30,7 @@ The optimal plan achieves a tumour D95 = 145.12 Gy (exceeding the 137.75 Gy mini Panel (a) shows the dose-volume histogram (DVH). The tumour curve drops steeply beyond the prescription dose, confirming adequate target coverage, while the long tail reflects the hot spots inherent to brachytherapy (high doses near dwell positions are physically unavoidable and clinically acceptable). Both OAR curves fall well within their respective dose constraints. -Panel (b) shows the scenario approach risk bounds. The complexity is k = 6 with no degeneracy, yielding risk bounds [0.000, 0.149] at 99.9999% confidence (beta = 10^{-6}). This guarantees that the dose constraints will be satisfied for a new random catheter placement with probability at least 85.1%. The low complexity relative to d = 50 decision variables indicates that only a small number of catheter-shift scenarios are critical to the solution geometry. +Panel (b) shows the scenario approach risk bounds. The complexity is k = 5 and degeneracy was detected, so no lower bound on risk can be certified; the upper risk bound is 0.141 at 99.9999% confidence (beta = 10^{-6}). This guarantees that the dose constraints will be satisfied for a new random catheter placement with probability at least 85.9%. The low complexity relative to d = 50 decision variables indicates that only a small number of catheter-shift scenarios are critical to the solution geometry. Panel (c) displays the dwell-position intensity profile. Most channels carry high intensity (~150 Gy.s, the upper bound), with a few positions at low or zero intensity. This reflects the geometry of the prostate target relative to the catheter array: dwell positions near the centre of the PTV deliver maximum intensity, while those far from the target or near OARs are suppressed. @@ -44,17 +44,13 @@ QP_radiation_therapy_50d/ ├── run.py Solve the QP and print results ├── plot.py Generate the paper figure ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) │ ├── anatomy.txt Structure definitions (voxel counts, dose limits) │ ├── scenarios.csv 200 x 3 catheter shift scenarios -│ ├── A_d.csv Affine constraint coefficients (80 x 50, with delta expressions) -│ ├── b_d.csv Constraint RHS values (80 x 1, with delta expressions) -│ ├── Q.csv Quadratic objective matrix (50 x 50) -│ ├── c.csv Linear objective vector (50 x 1) -│ ├── G.csv Hard constraint matrix (100 x 50) -│ ├── h.csv Hard constraint RHS (100 x 1) -│ └── D_nominal.csv Nominal dose-influence matrix (100 x 50) +│ ├── scenarios_numeric.csv Per-row-flattened matrices for numeric mode +│ ├── D_nominal.csv Nominal dose-influence matrix (100 x 50) +│ └── Prostate_BT_01.mat TROTS source data used by generate.py └── results/ ├── metrics.json Solver output (cost, risk bounds, doses) ├── solution.csv Raw solution vector @@ -68,8 +64,9 @@ QP_radiation_therapy_50d/ # Generate scenarios and constraint matrices from TROTS data (requires mat73) python generate.py -# Solve the QP +# Solve the QP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -81,26 +78,26 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method -1. Select the **QP** tab, formulation: **Robust + Regularization** -2. Upload or enter each matrix: - - **A(delta)**: `data/A_d.csv` - - **b(delta)**: `data/b_d.csv` - - **c**: `data/c.csv` - - **G**: `data/G.csv` - - **h**: `data/h.csv` - - **Q**: `data/Q.csv` +1. Select the **QP** tab, formulation: **Regularization** +2. Enter each matrix with its **Edit** button, using the matching field of `data/program_symbolic.json`: + - **A(delta)**: `A_d` + - **b(delta)**: `b_d` + - **c**: `c` + - **G**: `G` + - **h**: `h` + - **Q**: `Q` 3. Set parameters: rho = 0, tau = 0.1, confidence (beta) = 1e-06 4. Upload `data/scenarios.csv` in the Scenarios box 5. Press **Solve** ### Expected Results -- Optimal cost: 4698.836116109508 -- Complexity k: 6 -- Risk bounds: [0.0, 0.14861067387333604] +- Optimal cost: 4698.836115903002 (objective including tau ||x||_2, as in `results/metrics.json`; the web interface reports the cost without this term, about 4626.85) +- Complexity k: 5 +- Risk bounds: [0.0, 0.1413759133502026] (degeneracy detected, so the lower bound is not certified) diff --git a/benchmarks/SDP_LPV_stability_3d/README.md b/benchmarks/SDP_LPV_stability_3d/README.md index 8814d4f..66fa70d 100644 --- a/benchmarks/SDP_LPV_stability_3d/README.md +++ b/benchmarks/SDP_LPV_stability_3d/README.md @@ -25,33 +25,33 @@ where F_j encode the Lyapunov equation A(delta)'P + PA(delta). A hard constraint The SDP solves with N = 100 scenarios. The optimal Lyapunov matrix is: - P = [[10.68, 1.31], - [1.31, 9.00]] + P = [[10.67, 1.30], + [1.30, 9.01]] -The solver found complexity k = 1, meaning one scenario constraint is active at the optimal solution. This occurs at the upper boundary of the parameter range (delta near 1.0), where the system is closest to instability. With 99.9999% confidence (beta = 10^{-6}), the risk bounds are [0.000, 0.185], meaning at most 18.5% of parameter values could violate the certified stability condition. There is no degeneracy. +The solver found complexity k = 1, meaning one scenario constraint is active at the optimal solution. This occurs at the upper boundary of the parameter range (delta near 1.0), where the system is closest to instability. With 99.9999% confidence (beta = 10^{-6}), the risk bounds are [0.000, 0.186], meaning at most 18.6% of parameter values could violate the certified stability condition. There is no degeneracy. ## Files ``` -LPV_stability_3d/ +SDP_LPV_stability_3d/ ├── README.md This file ├── parameters.txt Solver parameters (rho, tau, confidence) ├── generate.py Generate scheduling parameter scenarios ├── run.py Solve the SDP and print results ├── plot.py Generate the paper figure +├── plot_data_only.py Generate a figure of the trajectories only (no Lyapunov ellipse) ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) -│ ├── F_0.csv ... F_3.csv Scenario-dependent LMI matrices -│ ├── E_0.csv ... E_3.csv Hard constraint (P > 0) matrices -│ ├── c.csv Linear objective vector -│ ├── Q.csv Quadratic objective matrix -│ └── scenarios.csv 100 scheduling parameter samples +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) +│ ├── scenarios.csv 100 scheduling parameter samples +│ └── scenarios_numeric.csv Per-row-flattened matrices for numeric mode └── results/ ├── metrics.json Solver output (cost, risk bounds, etc.) ├── solution.csv Raw solution vector ├── lpv_stability.png Paper figure (300 dpi) - └── lpv_stability.pdf Paper figure (vector) + ├── lpv_stability.pdf Paper figure (vector) + ├── lpv_trajectories_only.png Trajectories-only figure (300 dpi) + └── lpv_trajectories_only.pdf Trajectories-only figure (vector) ``` ## Usage @@ -60,8 +60,9 @@ LPV_stability_3d/ # Generate scenarios (optional) python generate.py -# Solve the SDP +# Solve the SDP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -73,32 +74,25 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method -1. Select the **SDP** tab, formulation: **Robust + Relaxation** -2. Upload matrices using one of these approaches: - - **Option A — One-shot LMI upload:** - - Click **Edit F(delta)** -> upload `data/program_symbolic.json` (the F_d section) as a JSON file, or enter the F_d dict - - Click **Edit E** -> upload the E matrices similarly - - **Option B — Individual matrix entry:** - - Click **Edit F(delta)** -> set n = 3 -> click each F_i button and upload `data/F_0.csv` through `data/F_3.csv` - - Click **Edit E** -> set n = 3 -> click each E_i button and upload `data/E_0.csv` through `data/E_3.csv` - -3. Upload or enter: - - **c**: `data/c.csv` - - **Q**: `data/Q.csv` +1. Select the **SDP** tab, formulation: **Relaxation** +2. Enter the matrices with their **Edit** buttons, using the matching fields of `data/program_symbolic.json`: + - **F(delta)**: `F_d` (matrices F_0 ... F_3) + - **E**: `E` (matrices E_0 ... E_3) +3. Enter: + - **c**: `c` + - **Q**: `Q` 4. Set parameters: rho = 1.0, tau = 0, confidence (beta) = 1e-06 5. Upload `data/scenarios.csv` in the Scenarios box 6. Press **Solve** ### Expected Results -- Optimal cost: -9.843942363041855 +- Optimal cost: -9.843942363753102 - Complexity k: 1 -- Risk bounds: [0.0, 0.185321964349132] +- Risk bounds: [0.0, 0.18583116631314622] diff --git a/benchmarks/SDP_Quadratic_Stability_6d/README.md b/benchmarks/SDP_Quadratic_Stability_6d/README.md index ff20630..af911d7 100644 --- a/benchmarks/SDP_Quadratic_Stability_6d/README.md +++ b/benchmarks/SDP_Quadratic_Stability_6d/README.md @@ -43,20 +43,17 @@ with trace(P) = 0.033. The solver found complexity k = 1 with no degeneracy, mea ## Files ``` -Quadratic_Stability_6d/ +SDP_Quadratic_Stability_6d/ ├── README.md This file ├── parameters.txt Solver parameters (rho, tau, confidence) ├── generate.py Generate scenarios and constraint matrices ├── run.py Solve the SDP and print results ├── plot.py Generate the paper figure ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) -│ ├── F_0.csv ... F_6.csv Scenario-dependent LMI matrices -│ ├── E_0.csv ... E_6.csv Hard constraint (P >= 0.01*I) matrices -│ ├── c.csv Linear objective vector (trace) -│ ├── Q.csv Quadratic regularisation matrix -│ └── scenarios.csv 500 x 2 parameter samples +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) +│ ├── scenarios.csv 500 x 2 parameter samples +│ └── scenarios_numeric.csv Per-row-flattened matrices for numeric mode └── results/ ├── metrics.json Solver output (cost, risk bounds, etc.) ├── solution.csv Raw solution vector @@ -70,8 +67,9 @@ Quadratic_Stability_6d/ # Generate scenarios and constraint matrices (optional) python generate.py -# Solve the SDP +# Solve the SDP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -83,32 +81,25 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method 1. Select the **SDP** tab, formulation: **Robust** -2. Upload matrices using one of these approaches: - - **Option A — One-shot LMI upload:** - - Click **Edit F(delta)** -> upload `data/program_symbolic.json` (the F_d section) as a JSON file, or enter the F_d dict - - Click **Edit E** -> upload the E matrices similarly - - **Option B — Individual matrix entry:** - - Click **Edit F(delta)** -> set n = 6 -> click each F_i button and upload `data/F_0.csv` through `data/F_6.csv` - - Click **Edit E** -> set n = 6 -> click each E_i button and upload `data/E_0.csv` through `data/E_6.csv` - -3. Upload or enter: - - **c**: `data/c.csv` - - **Q**: `data/Q.csv` +2. Enter the matrices with their **Edit** buttons, using the matching fields of `data/program_symbolic.json`: + - **F(delta)**: `F_d` (matrices F_0 ... F_6) + - **E**: `E` (matrices E_0 ... E_6) +3. Enter: + - **c**: `c` + - **Q**: `Q` 4. Set parameters: rho = 0.0, tau = 0, confidence (beta) = 1e-06 5. Upload `data/scenarios.csv` in the Scenarios box 6. Press **Solve** ### Expected Results -- Optimal cost: 0.032858958578525506 +- Optimal cost: 0.03285895857852664 - Complexity k: 1 -- Risk bounds: [0.0, 0.04000231437711046] +- Risk bounds: [0.0, 0.04027646044222639] diff --git a/benchmarks/SDP_covariance_wine_15d/README.md b/benchmarks/SDP_covariance_wine_15d/README.md index 1c0a782..9fd9e0a 100644 --- a/benchmarks/SDP_covariance_wine_15d/README.md +++ b/benchmarks/SDP_covariance_wine_15d/README.md @@ -22,7 +22,7 @@ so that (delta_i - mean)(delta_i - mean)' - Sigma <= 0 (PSD sense), i.e., Sigma ![Robust Covariance Wine](results/robust_covariance_wine.png) -The optimal Sigma_hat has trace 75.71 and eigenvalues {6.20, 9.29, 12.59, 21.05, 26.58}, confirming positive definiteness. The Frobenius error ||Sigma_hat - Sigma_full||_F = 35.61 reflects the conservatism of the domination requirement: every individual point's outer product must be dominated, inflating the diagonal entries substantially. The complexity is k = 7, no degeneracy, and risk bounds [0.000, 0.175] at 99.9999% confidence. +The optimal Sigma_hat has trace 75.71 and eigenvalues {6.20, 9.29, 12.59, 21.05, 26.58}, confirming positive definiteness. The Frobenius error ||Sigma_hat - Sigma_full||_F = 35.61 reflects the conservatism of the domination requirement: every individual point's outer product must be dominated, inflating the diagonal entries substantially. The complexity is k = 7, no degeneracy, and risk bounds [0.000, 0.178] at 99.9999% confidence. ## Files @@ -34,21 +34,22 @@ SDP_covariance_wine_15d/ ├── run.py Solve the SDP and print results ├── plot.py Generate the paper figure ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) │ ├── scenarios.csv 178 x 5 data point scenarios +│ ├── scenarios_numeric.csv Per-row-flattened matrices for numeric mode │ ├── basis_matrices.npy 15 x 5 x 5 symmetric basis matrices Pi_k │ ├── free_entries.csv Mapping of free entries in symmetric matrix -│ ├── c.csv Linear objective vector (trace) -│ ├── Q.csv Quadratic objective matrix (zero) -│ ├── E_0.csv ... E_15.csv Hard constraint matrices (Sigma > 0) │ ├── data_standardized.csv Standardized wine data │ ├── feature_names.txt Feature labels -│ └── cov_full.csv Full-sample covariance for comparison +│ ├── cov_full.csv Full-sample covariance for comparison +│ ├── entry_info.csv Legacy entry table (not used by the current scripts) +│ └── entry_matrices.npy Legacy entry matrices (not used by the current scripts) └── results/ ├── metrics.json Solver output (cost, risk bounds, etc.) ├── solution.csv Raw solution vector ├── Sigma_solution.csv Reconstructed covariance matrix + ├── X_solution.csv Legacy solution matrix (not written by the current run.py) ├── robust_covariance_wine.png Paper figure (300 dpi) └── robust_covariance_wine.pdf Paper figure (vector) ``` @@ -59,8 +60,9 @@ SDP_covariance_wine_15d/ # Generate scenarios from Wine dataset (optional) python generate.py -# Solve the SDP +# Solve the SDP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -72,32 +74,25 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method 1. Select the **SDP** tab, formulation: **Robust** -2. Upload matrices using one of these approaches: - - **Option A — One-shot LMI upload:** - - Click **Edit F(delta)** -> upload `data/program_symbolic.json` (the F_d section) as a JSON file, or enter the F_d dict - - Click **Edit E** -> upload the E matrices similarly - - **Option B — Individual matrix entry:** - - Click **Edit F(delta)** -> set n = 15 -> click each F_i button and upload `data/F_0.csv` through `data/F_15.csv` - - Click **Edit E** -> set n = 15 -> click each E_i button and upload `data/E_0.csv` through `data/E_15.csv` - -3. Upload or enter: - - **c**: `data/c.csv` - - **Q**: `data/Q.csv` +2. Enter the matrices with their **Edit** buttons, using the matching fields of `data/program_symbolic.json`: + - **F(delta)**: `F_d` (matrices F_0 ... F_15) + - **E**: `E` (matrices E_0 ... E_15) +3. Enter: + - **c**: `c` + - **Q**: `Q` 4. Set parameters: rho = 0.0, tau = 0.0, confidence (beta) = 1e-06 5. Upload `data/scenarios.csv` in the Scenarios box 6. Press **Solve** ### Expected Results -- Optimal cost: 75.71438155818954 +- Optimal cost: 75.71438155818643 - Complexity k: 7 -- Risk bounds: [0.0, 0.17538841818544354] +- Risk bounds: [0.0, 0.17795097645963384] diff --git a/benchmarks/SDP_ellipsoid_enclosure_15d/README.md b/benchmarks/SDP_ellipsoid_enclosure_15d/README.md index 59ac6cd..032a7e4 100644 --- a/benchmarks/SDP_ellipsoid_enclosure_15d/README.md +++ b/benchmarks/SDP_ellipsoid_enclosure_15d/README.md @@ -22,7 +22,7 @@ so that (delta_i - x_bar)' P (delta_i - x_bar) - 1 <= 0. The hard constraint enf ![Minimum Enclosing Ellipsoid](results/minimum_enclosing_ellipsoid.png) -The optimal P has trace 44.59 and eigenvalues {~0, ~0, ~0, ~0, 44.59}, revealing that the standardized data effectively lies in a 1-dimensional subspace (the first 5 breast cancer features are highly correlated). Since all 569 data points are used as scenarios, the ellipsoid contains all of them (100% containment). The complexity is k = 5 (five boundary data points define the ellipsoid), no degeneracy, and risk bounds [0.000, 0.051] at 99.9999% confidence, guaranteeing that a new random data point will fall inside the ellipsoid with probability at least 94.9%. +The optimal P has trace 44.59 and eigenvalues {~0, ~0, ~0, ~0, 44.59}, revealing that the standardized data effectively lies in a 1-dimensional subspace (the first 5 breast cancer features are highly correlated). Since all 569 data points are used as scenarios, the ellipsoid contains all of them (100% containment). The complexity is k = 5 (five boundary data points define the ellipsoid), no degeneracy, and risk bounds [0.000, 0.052] at 99.9999% confidence, guaranteeing that a new random data point will fall inside the ellipsoid with probability at least 94.8%. ## Files @@ -34,16 +34,15 @@ SDP_ellipsoid_enclosure_15d/ ├── run.py Solve the SDP and print results ├── plot.py Generate the paper figure ├── data/ -│ ├── program_symbolic.json One-shot program definition (JSON) -│ ├── program_symbolic.json One-shot program definition (MATLAB) +│ ├── program_symbolic.json Upload-Program definition (symbolic mode) +│ ├── program_numeric.json Upload-Program definition (numeric mode) │ ├── scenarios.csv 569 x 5 data point scenarios +│ ├── scenarios_numeric.csv Per-row-flattened matrices for numeric mode │ ├── basis_matrices.npy 15 x 5 x 5 symmetric basis matrices Pi_k │ ├── free_entries.csv Mapping of free entries in symmetric matrix │ ├── coeffs.csv Precomputed containment coefficients │ ├── center.csv Data center x_bar -│ ├── c.csv Linear objective vector (-trace) -│ ├── Q.csv Quadratic objective matrix (zero) -│ ├── E_0.csv ... E_15.csv Hard constraint matrices (P > 0) +│ ├── cov_full.csv Full-sample covariance │ ├── data_standardized.csv Full standardized dataset (569 x 5) │ └── feature_names.txt Feature labels └── results/ @@ -60,8 +59,9 @@ SDP_ellipsoid_enclosure_15d/ # Generate scenarios from Breast Cancer dataset (optional) python generate.py -# Solve the SDP +# Solve the SDP (MOSEK by default; use --solver to pick another, e.g. CLARABEL) python run.py +python run.py --solver CLARABEL # Generate paper figure python plot.py @@ -73,32 +73,25 @@ python plot.py 1. Start the web server: `python3 app.py` 2. Click **"Upload Program"** button (next to LP/QP/SDP tabs) -3. Upload `data/program_symbolic.json` or `data/program_symbolic.json` -4. Upload `data/scenarios.csv` in the Scenarios box +3. Upload `data/program_symbolic.json` (or `data/program_numeric.json` for numeric mode) +4. Upload `data/scenarios.csv` (or `data/scenarios_numeric.csv` with `program_numeric.json`) in the Scenarios box 5. Set solver to **MOSEK** and press **Solve** ### Manual Method 1. Select the **SDP** tab, formulation: **Robust** -2. Upload matrices using one of these approaches: - - **Option A — One-shot LMI upload:** - - Click **Edit F(delta)** -> upload `data/program_symbolic.json` (the F_d section) as a JSON file, or enter the F_d dict - - Click **Edit E** -> upload the E matrices similarly - - **Option B — Individual matrix entry:** - - Click **Edit F(delta)** -> set n = 15 -> click each F_i button and upload `data/F_0.csv` through `data/F_15.csv` - - Click **Edit E** -> set n = 15 -> click each E_i button and upload `data/E_0.csv` through `data/E_15.csv` - -3. Upload or enter: - - **c**: `data/c.csv` - - **Q**: `data/Q.csv` +2. Enter the matrices with their **Edit** buttons, using the matching fields of `data/program_symbolic.json`: + - **F(delta)**: `F_d` (matrices F_0 ... F_15) + - **E**: `E` (matrices E_0 ... E_15) +3. Enter: + - **c**: `c` + - **Q**: `Q` 4. Set parameters: rho = 0.0, tau = 0.0, confidence (beta) = 1e-06 5. Upload `data/scenarios.csv` in the Scenarios box 6. Press **Solve** ### Expected Results -- Optimal cost: -44.59438886598514 +- Optimal cost: -44.594388865949526 - Complexity k: 5 -- Risk bounds: [0.0, 0.05102523978920701] +- Risk bounds: [0.0, 0.05181163547131739] From cef0124e9d4e1c91bb85d9be1cdfdbb3a67bfce6 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:42:07 -0500 Subject: [PATCH 05/14] Explain the confidence entry in benchmark parameters.txt In parameters.txt, confidence = 0.999999 is the confidence level 1 - beta (run.py and plot.py compute beta = 1 - confidence), whereas the program JSON's "confidence" field holds beta itself (1e-06). Add a comment line above each entry. Values and parsing are unchanged; every reader of parameters.txt skips lines starting with '#'. Co-Authored-By: Claude Opus 5.5 --- benchmarks/LP_growth_bound_12d/parameters.txt | 1 + benchmarks/LP_half_width_2d/parameters.txt | 1 + benchmarks/LP_inventory_11d/parameters.txt | 1 + benchmarks/LP_portfolio_cvar_13d/parameters.txt | 1 + benchmarks/LP_power_dispatch_120d/parameters.txt | 1 + benchmarks/QP_Iris_minimal_3d/parameters.txt | 1 + benchmarks/QP_cbf_robot_navigation_118d/parameters.txt | 1 + benchmarks/QP_radiation_therapy_50d/parameters.txt | 1 + benchmarks/SDP_LPV_stability_3d/parameters.txt | 1 + benchmarks/SDP_Quadratic_Stability_6d/parameters.txt | 1 + benchmarks/SDP_covariance_wine_15d/parameters.txt | 1 + benchmarks/SDP_ellipsoid_enclosure_15d/parameters.txt | 1 + 12 files changed, 12 insertions(+) diff --git a/benchmarks/LP_growth_bound_12d/parameters.txt b/benchmarks/LP_growth_bound_12d/parameters.txt index 46f9db5..0cd6527 100644 --- a/benchmarks/LP_growth_bound_12d/parameters.txt +++ b/benchmarks/LP_growth_bound_12d/parameters.txt @@ -1,3 +1,4 @@ rho = 0 tau = 0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/LP_half_width_2d/parameters.txt b/benchmarks/LP_half_width_2d/parameters.txt index 46f9db5..0cd6527 100644 --- a/benchmarks/LP_half_width_2d/parameters.txt +++ b/benchmarks/LP_half_width_2d/parameters.txt @@ -1,3 +1,4 @@ rho = 0 tau = 0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/LP_inventory_11d/parameters.txt b/benchmarks/LP_inventory_11d/parameters.txt index 8b38886..e64c9a9 100644 --- a/benchmarks/LP_inventory_11d/parameters.txt +++ b/benchmarks/LP_inventory_11d/parameters.txt @@ -16,4 +16,5 @@ rho = 100.0 tau = 0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/LP_portfolio_cvar_13d/parameters.txt b/benchmarks/LP_portfolio_cvar_13d/parameters.txt index 2ff2dcc..a678220 100644 --- a/benchmarks/LP_portfolio_cvar_13d/parameters.txt +++ b/benchmarks/LP_portfolio_cvar_13d/parameters.txt @@ -21,4 +21,5 @@ rho = 0.015936 tau = 0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/LP_power_dispatch_120d/parameters.txt b/benchmarks/LP_power_dispatch_120d/parameters.txt index dc72be3..be6ca54 100644 --- a/benchmarks/LP_power_dispatch_120d/parameters.txt +++ b/benchmarks/LP_power_dispatch_120d/parameters.txt @@ -18,4 +18,5 @@ # The penalty coefficient rho=100 is embedded in c_aug, not passed to the solver rho = 0 tau = 0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/QP_Iris_minimal_3d/parameters.txt b/benchmarks/QP_Iris_minimal_3d/parameters.txt index 46f9db5..0cd6527 100644 --- a/benchmarks/QP_Iris_minimal_3d/parameters.txt +++ b/benchmarks/QP_Iris_minimal_3d/parameters.txt @@ -1,3 +1,4 @@ rho = 0 tau = 0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/QP_cbf_robot_navigation_118d/parameters.txt b/benchmarks/QP_cbf_robot_navigation_118d/parameters.txt index b66c637..424ddc0 100644 --- a/benchmarks/QP_cbf_robot_navigation_118d/parameters.txt +++ b/benchmarks/QP_cbf_robot_navigation_118d/parameters.txt @@ -11,4 +11,5 @@ rho = 0 tau = 0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/QP_radiation_therapy_50d/parameters.txt b/benchmarks/QP_radiation_therapy_50d/parameters.txt index cd4f041..4159def 100644 --- a/benchmarks/QP_radiation_therapy_50d/parameters.txt +++ b/benchmarks/QP_radiation_therapy_50d/parameters.txt @@ -12,4 +12,5 @@ # rho = 0 tau = 0.1 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/SDP_LPV_stability_3d/parameters.txt b/benchmarks/SDP_LPV_stability_3d/parameters.txt index f429cb6..1a960b8 100644 --- a/benchmarks/SDP_LPV_stability_3d/parameters.txt +++ b/benchmarks/SDP_LPV_stability_3d/parameters.txt @@ -10,4 +10,5 @@ rho = 1.0 tau = 0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/SDP_Quadratic_Stability_6d/parameters.txt b/benchmarks/SDP_Quadratic_Stability_6d/parameters.txt index 7d5f3c9..a96848a 100644 --- a/benchmarks/SDP_Quadratic_Stability_6d/parameters.txt +++ b/benchmarks/SDP_Quadratic_Stability_6d/parameters.txt @@ -10,4 +10,5 @@ rho = 0.0 tau = 0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/SDP_covariance_wine_15d/parameters.txt b/benchmarks/SDP_covariance_wine_15d/parameters.txt index c703ff0..a4612f5 100644 --- a/benchmarks/SDP_covariance_wine_15d/parameters.txt +++ b/benchmarks/SDP_covariance_wine_15d/parameters.txt @@ -8,4 +8,5 @@ # rho = 0.0 tau = 0.0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 diff --git a/benchmarks/SDP_ellipsoid_enclosure_15d/parameters.txt b/benchmarks/SDP_ellipsoid_enclosure_15d/parameters.txt index 29c9dee..be1c092 100644 --- a/benchmarks/SDP_ellipsoid_enclosure_15d/parameters.txt +++ b/benchmarks/SDP_ellipsoid_enclosure_15d/parameters.txt @@ -8,4 +8,5 @@ # rho = 0.0 tau = 0.0 +# confidence is the confidence level 1 - beta (here beta = 1e-06); the program JSON's "confidence" holds beta confidence = 0.999999 From 87f6b30a55e0a956a91c8505d29bc669ca7e9368 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:49:25 -0500 Subject: [PATCH 06/14] Use one solve function for the app and the MOSEK subprocess The MOSEK licence-upload path had its own copy of the solve loop, which had drifted from the app's: it certified each run at beta/(n_tau*n_rho) but reported 1 - beta/(n_tau*n_rho), reported the full objective (including the tau and rho terms) as the cost, and had no n_attempts. Both paths now call src/solve_form.solve_form, so they report the same results. While moving the loop: - Hidden fields are ignored: the selected formulation decides which of tau and rho apply, so e.g. a robust program no longer applies or sweeps a tau that is still in the form. - A missing or out-of-range confidence parameter is an error instead of being treated as beta = 0, and p must be at least 1. - Input errors are returned as {"error": ...} with HTTP 400. - Total Constraints counts the hard constraints as well as the N scenario constraints. - Download .MAT stores a failed run's missing results as NaN instead of failing. Co-Authored-By: Claude Opus 5.5 --- app.py | 298 +++--------------------------------------- src/mosek_solve.py | 218 +------------------------------ src/solve_form.py | 318 +++++++++++++++++++++++++++++++++++++++++++++ tests/test_app.py | 61 +++++++++ 4 files changed, 401 insertions(+), 494 deletions(-) create mode 100644 src/solve_form.py diff --git a/app.py b/app.py index 9849f82..b4b8a8b 100644 --- a/app.py +++ b/app.py @@ -7,16 +7,9 @@ import subprocess import sys import tempfile -import time import uuid -from src.LP import solve_lp -from src.QP import solve_qp -from src.SDP import solve_sdp -from src.Risk import quantify_risk from src.Miscellaneous import get_solvers -from src.parsing import (generate_matrix_function, generate_matrix, - generate_tensor_function, generate_tensor, - generate_numeric_A_b, generate_numeric_F) +from src.solve_form import solve_form app = Flask(__name__) @@ -129,8 +122,17 @@ def download_mat(): if not data: return jsonify({"error": "No data provided"}), 400 + def _none_to_nan(v): + # A failed run has no result (None), which savemat cannot store. + if v is None: + return np.nan + if isinstance(v, list): + return [_none_to_nan(item) for item in v] + return v + mat_dict = {} for key, value in data.items(): + value = _none_to_nan(value) try: mat_dict[key] = np.array(value) except (ValueError, TypeError): @@ -155,7 +157,10 @@ def solve(): ) if not has_license: - return _solve_inner() + try: + return _solve_inner() + except (ValueError, TypeError) as error: + return jsonify({"error": str(error)}), 400 # ---- MOSEK subprocess path ---- # Use a platform-neutral temp directory (tempfile.mkdtemp → %TEMP% on @@ -215,69 +220,11 @@ def solve(): shutil.rmtree(tmp_dir, ignore_errors=True) -def _parse_theta_bar(raw): - """Parse the x̄ (reference point) form field. - - The field is populated by the matrix-grid modal as a JSON-encoded 2-D - array (e.g. ``[["10"]]`` or ``[[0], [1]]``). Older inputs or an empty - field may arrive as an empty/comma-separated string. This helper - accepts any of those and returns a 1-D numpy float array, or 0.0 when - the field is unset (backward compat with the previous default). - """ - if raw is None: - return 0.0 - s = raw.strip() - if s in ('', 'null', '""', '[]'): - return 0.0 - # Try JSON first (the standard path for matrix-modal entries). - try: - parsed = json_module.loads(s) - return np.asarray(parsed, dtype=float).reshape(-1) - except (ValueError, TypeError): - pass - # Fallback: legacy comma-separated scalars (e.g. "0, 0"). - try: - return np.array([float(x) for x in s.split(',') if x.strip() != '']) - except ValueError as e: - raise ValueError( - f"Could not parse x̄ (theta_bar) value {raw!r}: expected a JSON " - f"array (e.g. [[10]]) or comma-separated numbers. ({e})" - ) - - -def compute_base_cost(active_tab, x, c, Q): - """Compute c'x (LP) or c'x + ½x'Qx (QP/SDP) from the optimal x. - - Regularization (τ·‖x − x̄‖) and relaxation (ρ·Σζ_i) penalty terms are - numerical tools for informing the solution; they are not part of the - underlying problem's objective and must not leak into reported cost. - """ - if x is None: - return None - x_arr = np.asarray(x, dtype=float).ravel() - if x_arr.size == 0: - return None - c_arr = np.asarray(c, dtype=float).ravel() if c is not None and getattr(c, 'size', 0) else None - if c_arr is None or c_arr.size != x_arr.size: - return None - base = float(c_arr @ x_arr) - if active_tab in ('qp-tab', 'sdp-tab') and Q is not None and getattr(Q, 'size', 0): - Q_arr = np.asarray(Q, dtype=float) - if Q_arr.shape == (x_arr.size, x_arr.size): - base += 0.5 * float(x_arr @ Q_arr @ x_arr) - return base - - def _solve_inner(): - option = request.form.get('option') - active_tab = request.form.get('active_tab') - # Handle scenarios file if present scenarios = None if 'file' in request.files and request.files['file'].filename != '': - file = request.files['file'] - filename = file.filename.lower() - parsed = parse_uploaded_file(file) + parsed = parse_uploaded_file(request.files['file']) if isinstance(parsed, dict): # MAT files return a dict; use the first array-like value for k, v in parsed.items(): @@ -289,220 +236,7 @@ def _solve_inner(): else: scenarios = np.array(parsed, dtype=float) - mode = request.form.get('mode', 'symbolic') - n_x = int(request.form.get('n_x', 0)) if request.form.get('n_x') else 0 - rows_A = int(request.form.get('rows_A', 0)) if request.form.get('rows_A') else 0 - lmi_size = int(request.form.get('lmi_size', 0)) if request.form.get('lmi_size') else 0 - - A_d = None - b_d = None - F_d = None - - if mode == 'numeric': - if scenarios is None: - raise ValueError("Numeric mode requires an uploaded scenario data file.") - if active_tab in ('lp-tab', 'qp-tab'): - if n_x <= 0 or rows_A <= 0: - raise ValueError("Numeric mode requires valid decision variable count (n_x) and soft constraint rows (rows_A).") - expected_cols = rows_A * n_x + rows_A - if scenarios.shape[1] != expected_cols: - raise ValueError( - f"Each scenario row must have {expected_cols} elements " - f"(rows_A*n_x + rows_A = {rows_A}*{n_x} + {rows_A}), " - f"but got {scenarios.shape[1]}.") - A_d, b_d = generate_numeric_A_b(rows_A, n_x) - elif active_tab == 'sdp-tab': - if n_x <= 0 or lmi_size <= 0: - raise ValueError("Numeric mode requires valid decision variable count (n_x) and LMI matrix size.") - expected_cols = (n_x + 1) * lmi_size ** 2 - if scenarios.shape[1] != expected_cols: - raise ValueError( - f"Each scenario row must have {expected_cols} elements " - f"((n_x+1)*lmi_size² = {n_x + 1}*{lmi_size}² = {expected_cols}), " - f"but got {scenarios.shape[1]}.") - F_d = generate_numeric_F(lmi_size, n_x) - else: - if request.form.get('A_d'): - A_d = generate_matrix_function(request.form.get('A_d')) - else: - if (active_tab == 'lp-tab') or (active_tab == 'qp-tab'): - raise ValueError("\\(A(\\delta)\\) is ill-defined") - if request.form.get('b_d'): - b_d = generate_matrix_function(request.form.get('b_d')) - else: - if (active_tab == 'lp-tab') or (active_tab == 'qp-tab'): - raise ValueError("\\(b(\\delta)\\) is ill-defined") - if request.form.get('F_d'): - F_d = generate_tensor_function(request.form.get('F_d')) - else: - if (active_tab == 'sdp-tab'): - raise ValueError("\\(F_j(\\delta)\\) is ill-defined") - if request.form.get('A_da'): - A_da = generate_tensor_function(request.form.get('A_da')) - if request.form.get('b_da'): - b_da = generate_tensor_function(request.form.get('b_da')) - - # Hard LP/QP constraints use G, h (form fields renamed from legacy A, b). - G = generate_matrix(request.form.get('G')) if request.form.get('G') else np.array([]) - h_vec = generate_matrix(request.form.get('h')) if request.form.get('h') else np.array([]) - c = generate_matrix(request.form.get('c')) if request.form.get('c') else np.array([]) - Q = generate_matrix(request.form.get('Q')) if request.form.get('Q') else np.array([]) - C = generate_matrix(request.form.get('C')) if request.form.get('C') else np.array([]) - # Hard SDP LMI collection uses E (form field renamed from legacy F). - E = generate_tensor(request.form.get('E')) if request.form.get('E') else {} - A_a = generate_tensor(request.form.get('A_a')) if request.form.get('A_a') else {} - b_a = generate_matrix(request.form.get('b_a')) if request.form.get('b_a') else np.array([]) - - conf = float(request.form.get('confidence')) if request.form.get('confidence') else 0.0 - # Get values from parameter boxes - form_data = request.form.to_dict() - - rhos = np.array([float(x) for x in request.form.get('rho', 0).split(',')]) if request.form.get('rho') else np.array( - [0.0]) - taus = np.array([float(x) for x in request.form.get('tau', 0).split(',')]) if request.form.get('tau') else np.array( - [0.0]) - theta_bar = _parse_theta_bar(request.form.get('theta_bar')) - p_raw = request.form.get('p', '').strip().strip("'\"") - if not p_raw: - p = 2 - elif p_raw.lower() in ('inf', 'infinity', 'np.inf'): - p = np.inf - elif p_raw.lower() == 'fro': - p = 'fro' - else: - try: - p = float(p_raw) - except ValueError: - raise ValueError( - f"p (norm order) must be a single number, 'inf', or 'fro'. " - f"You entered {p_raw!r} — comma-separated lists are not " - f"supported for p (sweep over τ or ρ instead)." - ) - - # Initialize lists to collect results for each run - optimal_x_list = [] - optimal_s_list = [] - optimal_cost_list = [] - N_list = [] - active_list = [] - constraints_list = [] - risk_list = [] - e_list = [] - degeneracy_list = [] - rho_list = [] - tau_list = [] - solve_time_list = [] - risk_time_list = [] - - # Overall confidence after q sweep attempts is 1 − β·q (union bound). - # Pass the user-entered β directly to the per-attempt risk computation; - # only the *reported* confidence folds in q. - n_attempts = len(taus) * len(rhos) - conf_reported = conf * n_attempts - - # The relaxation formulation must keep its slack variables ζ_i even when - # the user has set ρ = 0 (treats that case as genuinely unbounded rather - # than silently coercing it into the robust LP). When `option` is not in - # the form payload (older clients / direct API callers), fall through to - # the legacy "infer slack from ρ" behaviour by leaving include_slack=None - # so each solver default kicks in. - selected_option = form_data.get('option') - if selected_option: - include_slack = selected_option in ('relaxation', 'regularization-relaxation') - else: - include_slack = None - - for j in range(len(taus)): - tau = taus[j] - for i in range(len(rhos)): - rho = rhos[i] - solver = form_data.get('solver', 'CLARABEL') - - optimal_x = np.array([]) - optimal_s = np.array([]) - optimal_cost = None - N = 0 - complexity = [] - constraints = [] - degeneracy = False - risk = np.array([]) - e = "None" - solve_time = 0.0 - risk_time = 0.0 - - try: - t0 = time.perf_counter() - if active_tab == 'lp-tab': - optimal_x, optimal_s, optimal_cost, N, complexity, constraints, degeneracy = solve_lp( - scenarios, A_d, b_d, G, h_vec, c, tau, theta_bar, rho, p, solver, - include_slack=include_slack) - elif active_tab == 'qp-tab': - Q = generate_matrix(request.form.get('Q')) if request.form.get('Q') else np.array([]) - optimal_x, optimal_s, optimal_cost, N, complexity, constraints, degeneracy = solve_qp( - scenarios, A_d, b_d, G, h_vec, c, Q, tau, theta_bar, rho, p, solver, - include_slack=include_slack) - elif active_tab == 'sdp-tab': - optimal_x, optimal_s, optimal_cost, N, complexity, constraints, degeneracy = solve_sdp( - scenarios, F_d, E, c, Q, tau, theta_bar, rho, p, solver, - include_slack=include_slack) - solve_time = time.perf_counter() - t0 - - # Replace full-objective cost (which includes τ·‖x−x̄‖_p and - # ρ·Σζ_i penalty terms used only as solver guidance) with the - # base cost: c'x for LP, c'x + ½x'Qx for QP/SDP. - optimal_cost = compute_base_cost(active_tab, optimal_x, c, Q) - - t1 = time.perf_counter() - risk = np.array(quantify_risk(complexity, N, conf)) - risk_time = time.perf_counter() - t1 - except Exception as error: - e = str(error) - # Shorten verbose MOSEK license errors - if 'license' in e.lower() and ('mosek' in e.lower() or 'rescode' in e.lower()): - e = "MOSEK license cannot be located or is incorrect." - print(e) - - # Append results for this run - optimal_x_list.append(optimal_x.tolist() if hasattr(optimal_x, 'tolist') else optimal_x) - optimal_s_list.append(optimal_s.tolist() if hasattr(optimal_s, 'tolist') else optimal_s) - optimal_cost_list.append(optimal_cost) - N_list.append(N) - active_list.append(complexity) - e_list.append(e) - constraints_list.append(len(constraints)) - risk_list.append(risk.tolist() if hasattr(risk, 'tolist') else risk) - degeneracy_list.append(degeneracy) - rho_list.append(rho) - tau_list.append(tau) - solve_time_list.append(round(solve_time, 4)) - risk_time_list.append(round(risk_time, 4)) - - print(tau_list) - print(rho_list) - - # Prepare the result dictionary with lists for each parameter - result = { - "form_data": form_data, - "optimal_x": optimal_x_list, - "optimal_s": optimal_s_list, - "optimal_cost": optimal_cost_list, - "num_deltas": N_list, - "tot_con": constraints_list, - "active_con": active_list, - "risk": risk_list, - "conf": 1 - conf_reported, - "tau_": tau_list, - "rho_": rho_list, - "errorcode": e_list, - "degeneracy": degeneracy_list, - "solve_time": solve_time_list, - "risk_time": risk_time_list, - "n_attempts": n_attempts, - } - - print(result) - - return jsonify(result) + return jsonify(solve_form(request.form.to_dict(), scenarios)) if __name__ == '__main__': diff --git a/src/mosek_solve.py b/src/mosek_solve.py index c318e60..3682c6b 100644 --- a/src/mosek_solve.py +++ b/src/mosek_solve.py @@ -5,8 +5,8 @@ reads the license path on first import. This enables concurrent users to each supply their own license without conflicts. -Usage: - echo '' | python3 src/mosek_solve.py /tmp/mosek_/mosek.lic +Usage (from the repository root): + echo '' | python -m src.mosek_solve /tmp/mosek_/mosek.lic """ import os import sys @@ -16,22 +16,11 @@ os.environ["MOSEKLM_LICENSE_FILE"] = sys.argv[1] import json -import time import numpy as np -# Now safe to import solve functions (which import CVXPY → MOSEK) -from src.LP import solve_lp -from src.QP import solve_qp -from src.SDP import solve_sdp -from src.Risk import quantify_risk -from src.parsing import ( - generate_matrix_function, - generate_matrix, - generate_tensor_function, - generate_tensor, - generate_numeric_A_b, - generate_numeric_F, -) +# Now safe to import the solve code (which imports CVXPY → MOSEK). It is the +# same code the app uses, so both paths report results identically. +from src.solve_form import solve_form def _safe_tolist(v): @@ -52,204 +41,9 @@ def main(): input_data = json.loads(sys.stdin.read()) form = input_data["form"] scenarios_raw = input_data.get("scenarios") - scenarios = np.array(scenarios_raw, dtype=float) if scenarios_raw is not None else None - active_tab = form.get("active_tab") - - # ---- build matrix functions / constants from raw form strings ---- - A_d = b_d = F_d = A_da = b_da = None - - mode = form.get("mode", "symbolic") - n_x = int(form.get("n_x", 0)) if form.get("n_x") else 0 - rows_A = int(form.get("rows_A", 0)) if form.get("rows_A") else 0 - lmi_size = int(form.get("lmi_size", 0)) if form.get("lmi_size") else 0 - - if mode == "numeric": - if scenarios is None: - raise ValueError("Numeric mode requires an uploaded scenario data file.") - if active_tab in ("lp-tab", "qp-tab"): - if n_x <= 0 or rows_A <= 0: - raise ValueError("Numeric mode requires valid n_x and rows_A.") - expected_cols = rows_A * n_x + rows_A - if scenarios.shape[1] != expected_cols: - raise ValueError( - f"Each scenario row must have {expected_cols} elements " - f"(rows_A*n_x + rows_A = {rows_A}*{n_x} + {rows_A}), " - f"but got {scenarios.shape[1]}.") - A_d, b_d = generate_numeric_A_b(rows_A, n_x) - elif active_tab == "sdp-tab": - if n_x <= 0 or lmi_size <= 0: - raise ValueError("Numeric mode requires valid n_x and lmi_size.") - expected_cols = (n_x + 1) * lmi_size ** 2 - if scenarios.shape[1] != expected_cols: - raise ValueError( - f"Each scenario row must have {expected_cols} elements " - f"((n_x+1)*lmi_size² = {n_x + 1}*{lmi_size}² = {expected_cols}), " - f"but got {scenarios.shape[1]}.") - F_d = generate_numeric_F(lmi_size, n_x) - else: - if form.get("A_d"): - A_d = generate_matrix_function(form["A_d"]) - elif active_tab in ("lp-tab", "qp-tab"): - raise ValueError("\\(A(\\delta)\\) is ill-defined") - - if form.get("b_d"): - b_d = generate_matrix_function(form["b_d"]) - elif active_tab in ("lp-tab", "qp-tab"): - raise ValueError("\\(b(\\delta)\\) is ill-defined") - - if form.get("F_d"): - F_d = generate_tensor_function(form["F_d"]) - elif active_tab == "sdp-tab": - raise ValueError("\\(F_j(\\delta)\\) is ill-defined") - - if form.get("A_da"): - A_da = generate_tensor_function(form["A_da"]) - if form.get("b_da"): - b_da = generate_tensor_function(form["b_da"]) - - # Hard LP/QP constraints are G, h (form fields renamed from legacy A, b). - G = generate_matrix(form["G"]) if form.get("G") else np.array([]) - h_vec = generate_matrix(form["h"]) if form.get("h") else np.array([]) - c = generate_matrix(form["c"]) if form.get("c") else np.array([]) - Q = generate_matrix(form["Q"]) if form.get("Q") else np.array([]) - # Hard SDP LMI collection is E (form field renamed from legacy F). - E = generate_tensor(form["E"]) if form.get("E") else {} - - conf = float(form["confidence"]) if form.get("confidence") else 0.0 - - rhos = ( - np.array([float(x) for x in form["rho"].split(",")]) - if form.get("rho") - else np.array([0.0]) - ) - taus = ( - np.array([float(x) for x in form["tau"].split(",")]) - if form.get("tau") - else np.array([0.0]) - ) - # x̄ is usually sent as a JSON-encoded 2-D array by the matrix-grid modal - # (e.g. "[[10]]"); accept legacy comma-separated scalars as a fallback. - _raw_theta = form.get("theta_bar", "") - if not _raw_theta: - theta_bar = 0.0 - else: - _s = _raw_theta.strip() - try: - theta_bar = np.asarray(json.loads(_s), dtype=float).reshape(-1) - except (ValueError, TypeError): - theta_bar = np.array([float(x) for x in _s.split(",") if x.strip() != ""]) - p_raw = form.get("p", "").strip().strip("'\"") - if not p_raw: - p = 2 - elif p_raw.lower() in ("inf", "infinity", "np.inf"): - p = np.inf - elif p_raw.lower() == "fro": - p = "fro" - else: - try: - p = float(p_raw) - except ValueError: - raise ValueError( - f"p (norm order) must be a single number, 'inf', or 'fro'. " - f"You entered {p_raw!r} — comma-separated lists are not " - f"supported for p (sweep over τ or ρ instead)." - ) - - # ---- solve loop (mirrors _solve_inner in app.py) ---- - conf = conf / (len(taus) * len(rhos)) - - optimal_x_list, optimal_s_list, optimal_cost_list = [], [], [] - N_list, active_list, constraints_list = [], [], [] - risk_list, e_list, degeneracy_list = [], [], [] - rho_list, tau_list = [], [] - solve_time_list, risk_time_list = [], [] - - # Honour relaxation slack independently of ρ=0 (see solve_lp). Leave as - # None when no explicit option is provided so the solver defaults apply. - selected_option = form.get("option") - if selected_option: - include_slack = selected_option in ("relaxation", "regularization-relaxation") - else: - include_slack = None - - for tau in taus: - for rho in rhos: - solver = "MOSEK" - - optimal_x = np.array([]) - optimal_s = np.array([]) - optimal_cost = None - N = 0 - complexity = [] - constraints = [] - degeneracy = False - risk = np.array([]) - e = "None" - solve_time = 0.0 - risk_time = 0.0 - - try: - t0 = time.perf_counter() - if active_tab == "lp-tab": - optimal_x, optimal_s, optimal_cost, N, complexity, constraints, degeneracy = solve_lp( - scenarios, A_d, b_d, G, h_vec, c, tau, theta_bar, rho, p, solver, - include_slack=include_slack, - ) - elif active_tab == "qp-tab": - Q_inner = generate_matrix(form["Q"]) if form.get("Q") else np.array([]) - optimal_x, optimal_s, optimal_cost, N, complexity, constraints, degeneracy = solve_qp( - scenarios, A_d, b_d, G, h_vec, c, Q_inner, tau, theta_bar, rho, p, solver, - include_slack=include_slack, - ) - elif active_tab == "sdp-tab": - optimal_x, optimal_s, optimal_cost, N, complexity, constraints, degeneracy = solve_sdp( - scenarios, F_d, E, c, Q, tau, theta_bar, rho, p, solver, - include_slack=include_slack, - ) - solve_time = time.perf_counter() - t0 - - t1 = time.perf_counter() - risk = np.array(quantify_risk(complexity, N, conf)) - risk_time = time.perf_counter() - t1 - except Exception as error: - e = str(error) - if "license" in e.lower() and ("mosek" in e.lower() or "rescode" in e.lower()): - e = "MOSEK license cannot be located or is incorrect." - - optimal_x_list.append(_safe_tolist(optimal_x)) - optimal_s_list.append(_safe_tolist(optimal_s)) - optimal_cost_list.append(_safe_tolist(optimal_cost)) - N_list.append(N) - active_list.append(_safe_tolist(complexity)) - e_list.append(e) - constraints_list.append(len(constraints)) - risk_list.append(_safe_tolist(risk)) - degeneracy_list.append(degeneracy) - rho_list.append(_safe_tolist(rho)) - tau_list.append(_safe_tolist(tau)) - solve_time_list.append(round(solve_time, 4)) - risk_time_list.append(round(risk_time, 4)) - - result = { - "form_data": form, - "optimal_x": optimal_x_list, - "optimal_s": optimal_s_list, - "optimal_cost": optimal_cost_list, - "num_deltas": N_list, - "tot_con": constraints_list, - "active_con": active_list, - "risk": risk_list, - "conf": 1 - conf, - "tau_": tau_list, - "rho_": rho_list, - "errorcode": e_list, - "degeneracy": degeneracy_list, - "solve_time": solve_time_list, - "risk_time": risk_time_list, - } - + result = solve_form(form, scenarios, solver="MOSEK") json.dump(result, real_stdout, default=_safe_tolist) diff --git a/src/solve_form.py b/src/solve_form.py new file mode 100644 index 0000000..4dc08be --- /dev/null +++ b/src/solve_form.py @@ -0,0 +1,318 @@ +"""Solve a scenario program described by the web form's fields. + +Used by the Flask app (``app.py``) and by the MOSEK licence subprocess +(``src/mosek_solve.py``), so that both paths compute and report results in +exactly the same way. +""" +import json +import time + +import numpy as np + +from src.LP import solve_lp +from src.QP import solve_qp +from src.SDP import solve_sdp +from src.Risk import quantify_risk +from src.parsing import (generate_matrix_function, generate_matrix, + generate_tensor_function, generate_tensor, + generate_numeric_A_b, generate_numeric_F) + + +def parse_theta_bar(raw): + """Parse the x̄ (reference point) form field. + + The field is populated by the matrix-grid modal as a JSON-encoded 2-D + array (e.g. ``[["10"]]`` or ``[[0], [1]]``). Older inputs or an empty + field may arrive as an empty/comma-separated string. This helper + accepts any of those and returns a 1-D numpy float array, or 0.0 when + the field is unset (backward compat with the previous default). + """ + if raw is None: + return 0.0 + s = raw.strip() + if s in ('', 'null', '""', '[]'): + return 0.0 + # Try JSON first (the standard path for matrix-modal entries). + try: + parsed = json.loads(s) + return np.asarray(parsed, dtype=float).reshape(-1) + except (ValueError, TypeError): + pass + # Fallback: legacy comma-separated scalars (e.g. "0, 0"). + try: + return np.array([float(x) for x in s.split(',') if x.strip() != '']) + except ValueError as e: + raise ValueError( + f"Could not parse x̄ (theta_bar) value {raw!r}: expected a JSON " + f"array (e.g. [[10]]) or comma-separated numbers. ({e})" + ) + + +def compute_base_cost(active_tab, x, c, Q): + """Compute c'x (LP) or c'x + ½x'Qx (QP/SDP) from the optimal x. + + Regularization (τ·‖x − x̄‖) and relaxation (ρ·Σζ_i) penalty terms are + numerical tools for informing the solution; they are not part of the + underlying problem's objective and must not leak into reported cost. + """ + if x is None: + return None + x_arr = np.asarray(x, dtype=float).ravel() + if x_arr.size == 0: + return None + c_arr = np.asarray(c, dtype=float).ravel() if c is not None and getattr(c, 'size', 0) else None + if c_arr is None or c_arr.size != x_arr.size: + return None + base = float(c_arr @ x_arr) + if active_tab in ('qp-tab', 'sdp-tab') and Q is not None and getattr(Q, 'size', 0): + Q_arr = np.asarray(Q, dtype=float) + if Q_arr.shape == (x_arr.size, x_arr.size): + base += 0.5 * float(x_arr @ Q_arr @ x_arr) + return base + + +def parse_confidence(raw): + """Parse the confidence parameter β, which must lie strictly between 0 and 1.""" + try: + beta = float(raw) + except (TypeError, ValueError): + raise ValueError("Enter the confidence parameter β, a number between 0 and 1 (e.g. 1e-06).") + if not 0 < beta < 1: + raise ValueError(f"The confidence parameter β must lie strictly between 0 and 1 (got {raw}).") + return beta + + +def parse_norm(raw): + """Parse the norm order p: a number p ≥ 1, ``inf`` or ``fro``. Empty means p = 2.""" + p_raw = (raw or '').strip().strip("'\"") + if not p_raw: + return 2 + if p_raw.lower() in ('inf', 'infinity', 'np.inf'): + return np.inf + if p_raw.lower() == 'fro': + return 'fro' + try: + p = float(p_raw) + except ValueError: + raise ValueError( + f"p (norm order) must be a single number, 'inf', or 'fro'. " + f"You entered {p_raw!r} — comma-separated lists are not " + f"supported for p (sweep over τ or ρ instead)." + ) + if p < 1: + raise ValueError(f"p (norm order) must be at least 1 (got {p_raw}).") + return p + + +def solve_form(form, scenarios, solver=None): + """Solve every (τ, ρ) combination described by the web form. + + Parameters + ---------- + form : dict + The web form's fields as strings (``active_tab``, ``mode``, the + matrices as JSON strings, ``rho``, ``tau``, ``confidence``, ...). + scenarios : numpy.ndarray or None + The uploaded scenarios, one row per scenario. + solver : str or None + Solver to use. ``None`` uses the form's ``solver`` field + (default ``CLARABEL``); the MOSEK subprocess passes ``"MOSEK"``. + + Returns + ------- + dict + The result lists shown in the results table, one entry per run. + """ + active_tab = form.get('active_tab') + + mode = form.get('mode', 'symbolic') + n_x = int(form.get('n_x', 0)) if form.get('n_x') else 0 + rows_A = int(form.get('rows_A', 0)) if form.get('rows_A') else 0 + lmi_size = int(form.get('lmi_size', 0)) if form.get('lmi_size') else 0 + + A_d = None + b_d = None + F_d = None + + if mode == 'numeric': + if scenarios is None: + raise ValueError("Numeric mode requires an uploaded scenario data file.") + if active_tab in ('lp-tab', 'qp-tab'): + if n_x <= 0 or rows_A <= 0: + raise ValueError("Numeric mode requires valid decision variable count (n_x) and soft constraint rows (rows_A).") + expected_cols = rows_A * n_x + rows_A + if scenarios.shape[1] != expected_cols: + raise ValueError( + f"Each scenario row must have {expected_cols} elements " + f"(rows_A*n_x + rows_A = {rows_A}*{n_x} + {rows_A}), " + f"but got {scenarios.shape[1]}.") + A_d, b_d = generate_numeric_A_b(rows_A, n_x) + elif active_tab == 'sdp-tab': + if n_x <= 0 or lmi_size <= 0: + raise ValueError("Numeric mode requires valid decision variable count (n_x) and LMI matrix size.") + expected_cols = (n_x + 1) * lmi_size ** 2 + if scenarios.shape[1] != expected_cols: + raise ValueError( + f"Each scenario row must have {expected_cols} elements " + f"((n_x+1)*lmi_size² = {n_x + 1}*{lmi_size}² = {expected_cols}), " + f"but got {scenarios.shape[1]}.") + F_d = generate_numeric_F(lmi_size, n_x) + else: + if form.get('A_d'): + A_d = generate_matrix_function(form.get('A_d')) + elif active_tab in ('lp-tab', 'qp-tab'): + raise ValueError("\\(A(\\delta)\\) is ill-defined") + if form.get('b_d'): + b_d = generate_matrix_function(form.get('b_d')) + elif active_tab in ('lp-tab', 'qp-tab'): + raise ValueError("\\(b(\\delta)\\) is ill-defined") + if form.get('F_d'): + F_d = generate_tensor_function(form.get('F_d')) + elif active_tab == 'sdp-tab': + raise ValueError("\\(F_j(\\delta)\\) is ill-defined") + + # Hard LP/QP constraints use G, h (form fields renamed from legacy A, b). + G = generate_matrix(form.get('G')) if form.get('G') else np.array([]) + h_vec = generate_matrix(form.get('h')) if form.get('h') else np.array([]) + c = generate_matrix(form.get('c')) if form.get('c') else np.array([]) + Q = generate_matrix(form.get('Q')) if form.get('Q') else np.array([]) + # Hard SDP LMI collection uses E (form field renamed from legacy F). + E = generate_tensor(form.get('E')) if form.get('E') else {} + + conf = parse_confidence(form.get('confidence')) + + rhos = np.array([float(x) for x in form.get('rho').split(',')]) if form.get('rho') else np.array([0.0]) + taus = np.array([float(x) for x in form.get('tau').split(',')]) if form.get('tau') else np.array([0.0]) + + # The selected formulation decides which parameters apply. The fields of + # the other formulations are hidden in the form but still submitted, so + # they are ignored here rather than silently applied or swept over. + selected_option = form.get('option') + if selected_option in ('robust', 'regularization'): + rhos = np.array([0.0]) + if selected_option in ('robust', 'relaxation'): + taus = np.array([0.0]) + + theta_bar = parse_theta_bar(form.get('theta_bar')) + p = parse_norm(form.get('p')) + + # Hard constraints counted in "Total Constraints": the rows of G for + # LP/QP, or the single hard LMI for SDP. + if active_tab == 'sdp-tab': + n_hard = 1 if E else 0 + else: + n_hard = G.shape[0] if (G.size and h_vec.size) else 0 + + # Initialize lists to collect results for each run + optimal_x_list = [] + optimal_s_list = [] + optimal_cost_list = [] + N_list = [] + active_list = [] + constraints_list = [] + risk_list = [] + e_list = [] + degeneracy_list = [] + rho_list = [] + tau_list = [] + solve_time_list = [] + risk_time_list = [] + + # Overall confidence after q sweep attempts is 1 − β·q (union bound). + # Pass the user-entered β directly to the per-attempt risk computation; + # only the *reported* confidence folds in q. + n_attempts = len(taus) * len(rhos) + conf_reported = conf * n_attempts + + # The relaxation formulation must keep its slack variables ζ_i even when + # the user has set ρ = 0 (treats that case as genuinely unbounded rather + # than silently coercing it into the robust LP). When `option` is not in + # the form payload (older clients / direct API callers), fall through to + # the legacy "infer slack from ρ" behaviour by leaving include_slack=None + # so each solver default kicks in. + if selected_option: + include_slack = selected_option in ('relaxation', 'regularization-relaxation') + else: + include_slack = None + + run_solver = solver or form.get('solver', 'CLARABEL') + + for tau in taus: + for rho in rhos: + optimal_x = np.array([]) + optimal_s = np.array([]) + optimal_cost = None + N = 0 + complexity = [] + constraints = [] + degeneracy = False + risk = np.array([]) + e = "None" + solve_time = 0.0 + risk_time = 0.0 + + try: + t0 = time.perf_counter() + if active_tab == 'lp-tab': + optimal_x, optimal_s, optimal_cost, N, complexity, constraints, degeneracy = solve_lp( + scenarios, A_d, b_d, G, h_vec, c, tau, theta_bar, rho, p, run_solver, + include_slack=include_slack) + elif active_tab == 'qp-tab': + optimal_x, optimal_s, optimal_cost, N, complexity, constraints, degeneracy = solve_qp( + scenarios, A_d, b_d, G, h_vec, c, Q, tau, theta_bar, rho, p, run_solver, + include_slack=include_slack) + elif active_tab == 'sdp-tab': + optimal_x, optimal_s, optimal_cost, N, complexity, constraints, degeneracy = solve_sdp( + scenarios, F_d, E, c, Q, tau, theta_bar, rho, p, run_solver, + include_slack=include_slack) + solve_time = time.perf_counter() - t0 + + # Replace full-objective cost (which includes τ·‖x−x̄‖_p and + # ρ·Σζ_i penalty terms used only as solver guidance) with the + # base cost: c'x for LP, c'x + ½x'Qx for QP/SDP. + optimal_cost = compute_base_cost(active_tab, optimal_x, c, Q) + + t1 = time.perf_counter() + risk = np.array(quantify_risk(complexity, N, conf)) + risk_time = time.perf_counter() - t1 + except Exception as error: + e = str(error) + # Shorten verbose MOSEK license errors + if 'license' in e.lower() and ('mosek' in e.lower() or 'rescode' in e.lower()): + e = "MOSEK license cannot be located or is incorrect." + print(e) + + # Append results for this run + optimal_x_list.append(optimal_x.tolist() if hasattr(optimal_x, 'tolist') else optimal_x) + optimal_s_list.append(optimal_s.tolist() if hasattr(optimal_s, 'tolist') else optimal_s) + optimal_cost_list.append(optimal_cost) + N_list.append(N) + active_list.append(complexity) + e_list.append(e) + constraints_list.append(len(constraints) + n_hard if len(constraints) else 0) + risk_list.append(risk.tolist() if hasattr(risk, 'tolist') else risk) + degeneracy_list.append(degeneracy) + rho_list.append(float(rho)) + tau_list.append(float(tau)) + solve_time_list.append(round(solve_time, 4)) + risk_time_list.append(round(risk_time, 4)) + + # Prepare the result dictionary with lists for each parameter + return { + "form_data": dict(form), + "optimal_x": optimal_x_list, + "optimal_s": optimal_s_list, + "optimal_cost": optimal_cost_list, + "num_deltas": N_list, + "tot_con": constraints_list, + "active_con": active_list, + "risk": risk_list, + "conf": 1 - conf_reported, + "tau_": tau_list, + "rho_": rho_list, + "errorcode": e_list, + "degeneracy": degeneracy_list, + "solve_time": solve_time_list, + "risk_time": risk_time_list, + "n_attempts": n_attempts, + } diff --git a/tests/test_app.py b/tests/test_app.py index acfd1c0..8d89c87 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -141,3 +141,64 @@ def test_download_mat_route(client): assert resp.status_code == 200 assert "matlab" in resp.content_type or "octet-stream" in resp.content_type + + +def _interval_form(**overrides): + """Form fields for the smallest-enclosing-interval LP, as the browser sends them.""" + csv_bytes = "\n".join(str(v) for v in [0.1, 0.4, 0.9]).encode() + data = { + "active_tab": "lp-tab", + "A_d": '[["-1", "-1"], ["1", "-1"]]', + "b_d": '[["delta[0]"], ["-delta[0]"]]', + "c": '[["0"], ["1"]]', + "rho": "0", + "tau": "0", + "option": "robust", + "solver": "CLARABEL", + "confidence": "1e-06", + "file": (io.BytesIO(csv_bytes), "scenarios.csv"), + } + data.update(overrides) + return data + + +def test_solve_accepts_plain_numbers(client): + """Matrices with plain numbers (not strings) solve like their string form.""" + resp = client.post("/solve", data=_interval_form(c="[[0], [1]]", A_d='[[-1, -1], [1, -1]]'), + content_type="multipart/form-data") + assert resp.status_code == 200 + np.testing.assert_allclose(np.ravel(resp.get_json()["optimal_x"][0]), [0.5, 0.4], atol=1e-6) + + +@pytest.mark.parametrize("beta", ["", "0", "1", "abc"]) +def test_solve_rejects_invalid_beta(client, beta): + """A missing or out-of-range β is reported as an error, not treated as 0.""" + resp = client.post("/solve", data=_interval_form(confidence=beta), content_type="multipart/form-data") + assert resp.status_code == 400 + assert "confidence parameter" in resp.get_json()["error"] + + +def test_solve_robust_ignores_hidden_parameters(client): + """With the robust option, hidden τ and ρ fields are neither applied nor swept.""" + resp = client.post("/solve", data=_interval_form(tau="5", rho="0.1, 1"), content_type="multipart/form-data") + data = resp.get_json() + assert data["n_attempts"] == 1 and data["tau_"] == [0.0] and data["rho_"] == [0.0] + np.testing.assert_allclose(np.ravel(data["optimal_x"][0]), [0.5, 0.4], atol=1e-6) + + +def test_solve_sweep_confidence_and_total_constraints(client): + """A sweep reports 1 − β·n_runs; Total Constraints counts the hard constraints too.""" + resp = client.post("/solve", data=_interval_form(option="relaxation", rho="0.5, 1", confidence="0.01", + G='[["0", "-1"]]', h='[["0"]]'), + content_type="multipart/form-data") + data = resp.get_json() + assert data["n_attempts"] == 2 + assert abs(data["conf"] - 0.98) < 1e-12 + assert data["tot_con"] == [4, 4] # 3 scenario constraints + 1 row of G + + +def test_download_mat_with_a_failed_run(client): + """A run without results (None) no longer breaks the .MAT download.""" + resp = client.post("/download-mat", json={"optimal_cost": [0.5, None], "risk": [[0.0, 0.2], []]}) + assert resp.status_code == 200 + assert resp.data[:6] == b"MATLAB" From deb5f1b8905606150a6b8e5248b8fc3d6546ff40 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:49:26 -0500 Subject: [PATCH 07/14] Fix silent shape errors and solver handling in the LP, QP and SDP solvers - Leave the tau*||x - x_ref|| term out when tau = 0. With p = 2 it added a second-order cone, so LP-only solvers failed on plain LPs. - Use the vector p-norm of x - x_ref, so any p >= 1 works (only 1, 2, inf and fro worked for LP/QP before); results are unchanged for those. - Reshape b(delta) and h to columns: a 1-D array was silently broadcast to an (m, m) matrix and changed the constraints. - SDP: accept integer matrix keys (key 0 was read as the last variable), reshape a column x_ref (it was broadcast to a matrix), and allow an empty Q. - Check Q for symmetry and semidefiniteness with a small tolerance, so rank-deficient matrices are accepted. - Empty deltas raise the documented ValueError instead of IndexError. - Correct the solver capability table against CVXPY's metadata (ECOS, GUROBI, CPLEX and SCIP cannot solve SDPs; CBC and SCIPY are LP-only; QPALM is not a CVXPY solver) and derive the types of unlisted solvers from CVXPY instead of offering all three. - get_norm_types no longer lists 'nuc'; load_file reads JSON without an invalid orient, accepts comma-separated .txt files, and its docstring says it returns None on errors. Co-Authored-By: Claude Opus 5.5 --- src/LP.py | 26 +++++---- src/Miscellaneous.py | 107 ++++++++++++++++++++++++++++-------- src/QP.py | 29 +++++----- src/SDP.py | 50 +++++++++++------ tests/test_lp.py | 49 +++++++++++++++++ tests/test_miscellaneous.py | 17 +++++- tests/test_qp.py | 10 ++++ tests/test_sdp.py | 43 +++++++++++++++ 8 files changed, 262 insertions(+), 69 deletions(-) diff --git a/src/LP.py b/src/LP.py index 6b1a5a1..390835c 100644 --- a/src/LP.py +++ b/src/LP.py @@ -1,6 +1,6 @@ import cvxpy as cp import numpy as np -from src.Miscellaneous import get_support +from src.Miscellaneous import get_support, check_scenarios, regularization_term def solve_lp(deltas, A_d, b_d, G, h, c, tau=0.0, x_ref=np.array([0.0]), rho=0.0, norm_type=2, solver=None, include_slack=None): r"""Solve a linear program with scenario constraints via the scenario approach. @@ -43,10 +43,14 @@ def solve_lp(deltas, A_d, b_d, G, h, c, tau=0.0, x_ref=np.array([0.0]), rho=0.0, rho : float, optional Penalty on slack variables. When ``0.0`` the scenario constraints are hard. Default is ``0.0``. - norm_type : int, optional - Norm type for the regularization term (1, 2, etc.). Default is ``2``. + norm_type : int, float or str, optional + Order p of the vector norm in the regularization term: any number + ``p >= 1``, ``'inf'`` or ``'fro'`` (Euclidean). Default is ``2``. solver : str or None, optional CVXPY solver name. ``None`` for automatic selection. + include_slack : bool or None, optional + Whether to add the slack variables ζ_i (the relaxation formulation). + ``None`` adds them only when ``rho != 0``. Returns ------- @@ -68,14 +72,12 @@ def solve_lp(deltas, A_d, b_d, G, h, c, tau=0.0, x_ref=np.array([0.0]), rho=0.0, Raises ------ ValueError - If the solver does not reach an optimal or near-optimal status. + If ``deltas`` is empty, or the solver does not reach an optimal or + near-optimal status. """ + N = check_scenarios(deltas) # Number of scenarios n = A_d(deltas[0]).shape[1] # Number of variables m_scenario = A_d(deltas[0]).shape[0] # Number of scenario constraints - try: - N = deltas.shape[0] # Number of scenarios - except IndexError: - raise ValueError("The input `deltas` must have at least one row.") # Variables x = cp.Variable((n, 1)) @@ -94,12 +96,14 @@ def solve_lp(deltas, A_d, b_d, G, h, c, tau=0.0, x_ref=np.array([0.0]), rho=0.0, constraints = [] for i in range(N): - constraints.append(A_d(deltas[i]) @ x + b_d(deltas[i]) <= zeta[i]) # Per-scenario slack + # b(δ) as a column: a 1-D (m,) array would otherwise be broadcast to (m, m). + b_i = np.asarray(b_d(deltas[i]), dtype=float).reshape(-1, 1) + constraints.append(A_d(deltas[i]) @ x + b_i <= zeta[i]) # Per-scenario slack # Hard constraints are kept separate from the scenario constraints: they # are always enforced but never candidates for the support list. if not (G.size == 0 or h.size == 0): - non_risk_constraints = [G @ x + h <= 0] + non_risk_constraints = [np.atleast_2d(G) @ x + np.asarray(h, dtype=float).reshape(-1, 1) <= 0] else: non_risk_constraints = [] @@ -119,7 +123,7 @@ def solve_lp(deltas, A_d, b_d, G, h, c, tau=0.0, x_ref=np.array([0.0]), rho=0.0, ) # Objective Function - objective = cp.Minimize(c.T @ x + tau * cp.norm(x - x_ref, norm_type) + rho * cp.sum(zeta)) + objective = cp.Minimize(c.T @ x + regularization_term(tau, x, x_ref, norm_type) + rho * cp.sum(zeta)) # Solve the problem prob = cp.Problem(objective, constraints + non_risk_constraints) diff --git a/src/Miscellaneous.py b/src/Miscellaneous.py index 9edc53e..ffac9b9 100644 --- a/src/Miscellaneous.py +++ b/src/Miscellaneous.py @@ -4,20 +4,38 @@ SOLVER_CAPABILITIES = { 'CLARABEL': ['LP', 'QP', 'SDP'], 'SCS': ['LP', 'QP', 'SDP'], - # OSQP and SCIPY are removed from the LP list — both technically claim - # LP support but fail on the scenario LPs we build (slack reformulation - # produces degenerate QPs OSQP can't handle; SCIPY's wrapper hits - # NotImplemented paths for our equality reductions). - 'OSQP': ['QP'], 'ECOS': ['LP', 'QP', 'SDP'], + # OSQP is kept off the LP list: it fails on the scenario LPs we build + # (the slack reformulation produces degenerate QPs OSQP can't handle). + 'OSQP': ['QP'], 'ECOS': ['LP', 'QP'], 'CVXOPT': ['LP', 'QP', 'SDP'], 'GLOP': ['LP'], 'GLPK': ['LP'], - 'GLPK_MI': ['LP'], 'SCIPY': ['QP'], 'HIGHS': ['LP', 'QP'], - 'SCIP': ['LP', 'QP', 'SDP'], 'CBC': ['LP', 'QP'], + 'GLPK_MI': ['LP'], 'SCIPY': ['LP'], 'HIGHS': ['LP', 'QP'], + 'SCIP': ['LP', 'QP'], 'CBC': ['LP'], 'DAQP': ['LP', 'QP'], 'PIQP': ['LP', 'QP'], - 'PROXQP': ['LP', 'QP'], 'QPALM': ['LP', 'QP'], - 'MOSEK': ['LP', 'QP', 'SDP'], 'GUROBI': ['LP', 'QP', 'SDP'], - 'CPLEX': ['LP', 'QP', 'SDP'], 'SDPA': ['SDP'], + 'PROXQP': ['LP', 'QP'], + 'MOSEK': ['LP', 'QP', 'SDP'], 'GUROBI': ['LP', 'QP'], + 'CPLEX': ['LP', 'QP'], 'SDPA': ['SDP'], } + +def _cvxpy_capabilities(name): + """Program types a solver missing from SOLVER_CAPABILITIES can handle, from CVXPY's own metadata. + + LP needs any conic or QP interface, QP needs a QP interface or second-order + cones, and SDP needs positive semidefinite cones. + """ + from cvxpy.constraints import PSD, SOC + from cvxpy.reductions.solvers.defines import SOLVER_MAP_CONIC, SOLVER_MAP_QP + conic, qp = SOLVER_MAP_CONIC.get(name), SOLVER_MAP_QP.get(name) + supported = conic.SUPPORTED_CONSTRAINTS if conic else [] + types = [] + if conic or qp: + types.append('LP') + if qp or SOC in supported: + types.append('QP') + if PSD in supported: + types.append('SDP') + return types + def get_solvers(): """Retrieve installed CVXPY solvers and their supported problem types. @@ -32,8 +50,47 @@ def get_solvers(): `CVXPY solver list `_ """ installed = cp.installed_solvers() - solver_dict = {s: SOLVER_CAPABILITIES.get(s, ['LP', 'QP', 'SDP']) for s in installed} - return solver_dict + solver_dict = {s: SOLVER_CAPABILITIES[s] if s in SOLVER_CAPABILITIES else _cvxpy_capabilities(s) + for s in installed} + return {s: types for s, types in solver_dict.items() if types} + +def check_scenarios(deltas): + """Return the number of scenarios N, raising ValueError when there are none.""" + if deltas is None or np.size(deltas) == 0: + raise ValueError("The input `deltas` must have at least one row.") + return len(deltas) + + +def check_psd(Q, tol=1e-9): + """Return Q symmetrised, after checking it is symmetric positive semidefinite. + + Both checks allow a small relative tolerance, so rank-deficient matrices + such as D.T @ D, whose zero eigenvalues come out as about -1e-16, pass. + """ + Q = np.asarray(Q, dtype=float) + scale = max(1.0, float(np.abs(Q).max())) + assert np.allclose(Q, Q.T, rtol=0, atol=tol * scale), "Q must be symmetric" + Q = (Q + Q.T) / 2 + eigvals = np.linalg.eigvalsh(Q) + assert eigvals.min() >= -tol * scale, f"Q must be positive semi-definite (eigenvalues: {eigvals})" + return Q + + +def regularization_term(tau, x, x_ref, norm_type): + """Return tau * ||x - x_ref||_p, or 0 when tau = 0. + + The term is left out when tau = 0, so a robust or relaxed LP stays a pure + LP: with the default p = 2 the norm would add a second-order cone, which + LP-only solvers cannot handle. The norm is the vector p-norm of + x - x_ref, so any p >= 1 works, and ``'fro'`` is the Euclidean norm. + """ + if tau == 0: + return 0 + diff = x - x_ref + if len(diff.shape) == 2: + diff = diff[:, 0] # (n, 1) column -> vector + return tau * cp.norm(diff, 2 if norm_type == 'fro' else norm_type) + def get_norm_types(): """Retrieve available norm types for the regularization term. @@ -41,16 +98,19 @@ def get_norm_types(): Returns ------- list - Supported CVXPY norm types: ``1`` (L1), ``2`` (L2), ``'inf'`` - (L-infinity), ``'fro'`` (Frobenius), ``'nuc'`` (nuclear). + Common norm types: ``1`` (L1), ``2`` (L2), ``'inf'`` (L-infinity) + and ``'fro'`` (the same as L2 for the vector ``x - x_ref``). Any + other number ``p >= 1`` also works. """ - norm_types = [1, 2, "inf", "fro", "nuc"] + norm_types = [1, 2, "inf", "fro"] return norm_types def load_file(file_path): """Read a data file and convert it to a NumPy array. - Supports CSV, TXT, XLSX, and JSON formats. + Supports CSV, TXT, XLSX, and JSON formats. A ``.txt`` file may be + separated by whitespace or by commas; a ``.json`` file holds a list of + rows (one per scenario) or a table in pandas' default JSON format. Parameters ---------- @@ -61,22 +121,21 @@ def load_file(file_path): Returns ------- numpy.ndarray or None - Array containing the file data, or ``None`` if an error occurred. - - Raises - ------ - ValueError - If the file extension is not supported. + Array containing the file data, or ``None`` if the file cannot be + read or has an unsupported extension (the error is printed). """ try: if file_path.endswith('.csv'): data = pd.read_csv(file_path,header=None).values # Read CSV using pandas and convert to NumPy elif file_path.endswith('.txt'): - data = np.loadtxt(file_path) # Read TXT using NumPy (default to expect floats) + try: + data = np.loadtxt(file_path) # whitespace-separated numbers + except ValueError: + data = np.loadtxt(file_path, delimiter=',') # comma-separated numbers elif file_path.endswith('.xlsx'): data = pd.read_excel(file_path, engine='openpyxl',header=None).values # Read Excel file and convert to NumPy elif file_path.endswith('.json'): - data = pd.read_json(file_path, orient='record').values # Read JSON and convert to NumPy + data = pd.read_json(file_path).values # a list of rows, or pandas' column format else: raise ValueError("Unsupported file format") diff --git a/src/QP.py b/src/QP.py index 36020d6..8c9c4bd 100644 --- a/src/QP.py +++ b/src/QP.py @@ -1,6 +1,6 @@ import cvxpy as cp import numpy as np -from src.Miscellaneous import get_support +from src.Miscellaneous import get_support, check_scenarios, check_psd, regularization_term def solve_qp(deltas, A_d, b_d, G, h, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0.0, norm_type=2, solver=None, include_slack=None): r"""Solve a quadratic program with scenario constraints via the scenario approach. @@ -46,10 +46,14 @@ def solve_qp(deltas, A_d, b_d, G, h, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0 rho : float, optional Penalty on slack variables. When ``0.0`` the scenario constraints are hard. Default is ``0.0``. - norm_type : int, optional - Norm type for the regularization term (1, 2, etc.). Default is ``2``. + norm_type : int, float or str, optional + Order p of the vector norm in the regularization term: any number + ``p >= 1``, ``'inf'`` or ``'fro'`` (Euclidean). Default is ``2``. solver : str or None, optional CVXPY solver name. ``None`` for automatic selection. + include_slack : bool or None, optional + Whether to add the slack variables ζ_i (the relaxation formulation). + ``None`` adds them only when ``rho != 0``. Returns ------- @@ -75,16 +79,11 @@ def solve_qp(deltas, A_d, b_d, G, h, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0 AssertionError If *Q* is not positive semidefinite or not symmetric. """ - # Check Q is positive semi-definite and symmetric. - eigvals = np.linalg.eigvals(Q) - assert np.all(eigvals >= 0), f"Q must be positive semi-definite (eigenvalues: {eigvals})" - assert (Q == Q.T).all(), "Q must be symmetric" + # Check Q is symmetric positive semi-definite (up to a small tolerance). + Q = check_psd(Q) + N = check_scenarios(deltas) # Number of scenarios n = A_d(deltas[0]).shape[1] # Number of variables m_scenario = A_d(deltas[0]).shape[0] # Number of scenario constraints - try: - N = deltas.shape[0] # Number of scenarios - except IndexError: - raise ValueError("The input `deltas` must have at least one row.") # Variables x = cp.Variable((n, 1)) @@ -99,12 +98,14 @@ def solve_qp(deltas, A_d, b_d, G, h, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0 zeta = np.zeros(N) constraints = [] for i in range(N): - constraints.append(A_d(deltas[i]) @ x + b_d(deltas[i]) <= zeta[i]) # Per-scenario slack + # b(δ) as a column: a 1-D (m,) array would otherwise be broadcast to (m, m). + b_i = np.asarray(b_d(deltas[i]), dtype=float).reshape(-1, 1) + constraints.append(A_d(deltas[i]) @ x + b_i <= zeta[i]) # Per-scenario slack # Hard constraints are kept separate from the scenario constraints: they # are always enforced but never candidates for the support list. if not (G.size == 0 or h.size == 0): - non_risk_constraints = [G @ x + h <= 0] + non_risk_constraints = [np.atleast_2d(G) @ x + np.asarray(h, dtype=float).reshape(-1, 1) <= 0] else: non_risk_constraints = [] @@ -122,7 +123,7 @@ def solve_qp(deltas, A_d, b_d, G, h, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0 ) # Objective Function - objective = cp.Minimize((1/2)*cp.quad_form(x, cp.psd_wrap(Q)) + c.T @ x + tau * cp.norm(x - x_ref, norm_type) + rho * cp.sum(zeta)) + objective = cp.Minimize((1/2)*cp.quad_form(x, cp.psd_wrap(Q)) + c.T @ x + regularization_term(tau, x, x_ref, norm_type) + rho * cp.sum(zeta)) # Solve the problem prob = cp.Problem(objective, constraints + non_risk_constraints) diff --git a/src/SDP.py b/src/SDP.py index ebb2543..f6df8cb 100644 --- a/src/SDP.py +++ b/src/SDP.py @@ -1,6 +1,6 @@ import cvxpy as cp import numpy as np -from src.Miscellaneous import get_support +from src.Miscellaneous import get_support, check_scenarios, check_psd, regularization_term def solve_sdp(deltas, F_d, E, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0.0, norm_type=2, solver=None, include_slack=None): @@ -27,14 +27,16 @@ def solve_sdp(deltas, F_d, E, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0.0, nor Function mapping a scenario to a dict of symmetric matrices keyed by variable index (``'0'`` for the constant term, ``'1'`` for :math:`x_1`, etc.): ``F_d(delta) -> {'0': F0, '1': F1, ...}``. + Integer keys (``0, 1, ...``) work too. E : dict or None Dict of symmetric matrices for the hard LMI constraint, same key format as *F_d* output. Pass ``None`` if there are no hard constraints. c : numpy.ndarray Linear objective coefficient vector with shape ``(n,)``. - Q : numpy.ndarray + Q : numpy.ndarray or None Quadratic cost matrix with shape ``(n, n)``. Must be positive - semidefinite and symmetric. + semidefinite and symmetric. ``None`` or an empty array means no + quadratic term. tau : float, optional Regularization strength toward *x_ref*. Default is ``0.0``. x_ref : numpy.ndarray, optional @@ -42,10 +44,14 @@ def solve_sdp(deltas, F_d, E, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0.0, nor rho : float, optional Penalty on slack variables. When ``0.0`` the scenario constraints are hard. Default is ``0.0``. - norm_type : int, optional - Norm type for the regularization term (1, 2, etc.). Default is ``2``. + norm_type : int, float or str, optional + Order p of the vector norm in the regularization term: any number + ``p >= 1``, ``'inf'`` or ``'fro'`` (Euclidean). Default is ``2``. solver : str or None, optional CVXPY solver name. ``None`` for automatic selection. + include_slack : bool or None, optional + Whether to add the slack variables ζ_i (the relaxation formulation). + ``None`` adds them only when ``rho != 0``. Returns ------- @@ -72,18 +78,13 @@ def solve_sdp(deltas, F_d, E, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0.0, nor If *Q* or any :math:`F_j(\delta)` matrix is not symmetric. """ - # Check Q is positive semi-definite and symmetric. - eigvals = np.linalg.eigvals(Q) - assert np.all(eigvals >= 0), f"Q must be positive semi-definite (eigenvalues: {eigvals})" - assert (Q == Q.T).all(), "Q must be symmetric" - n = Q.shape[1] + n = np.asarray(c).reshape(-1).size # Number of variables + # Check Q is symmetric positive semi-definite (up to a small tolerance); + # an empty Q means there is no quadratic term. + Q = np.zeros((n, n)) if Q is None or np.size(Q) == 0 else check_psd(Q) + N = check_scenarios(deltas) # Number of scenarios m = list(F_d(deltas[0]).values())[0].shape[0] - try: - N = deltas.shape[0] # Number of scenarios - except IndexError: - raise ValueError("The input `deltas` must have at least one row.") - # Variables x = cp.Variable(n) # See solve_lp for the rationale: respect include_slack independently of @@ -103,7 +104,7 @@ def solve_sdp(deltas, F_d, E, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0.0, nor for k, Fk in F_dict.items(): #assert np.all(np.linalg.eigvals(Fk) >= 0), "\\(F_j(\\delta)\\) need to be positive semi-definite and symmetric" assert (Fk == Fk.T).all(), "\\(F_j(\\delta)\\) need to be symmetric" - if k == '0': + if int(k) == 0: # keys may be '0', '1', ... or 0, 1, ... term = Fk else: xk = x[int(k)-1] @@ -116,7 +117,7 @@ def solve_sdp(deltas, F_d, E, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0.0, nor for k, Fk in E.items(): #assert np.all(np.linalg.eigvals(Fk) >= 0), "\\(F_j\\) need to be positive semi-definite and symmetric" assert (Fk == Fk.T).all(), "\\(F_j\\) needs to be symmetric" - if k == '0': + if int(k) == 0: # keys may be '0', '1', ... or 0, 1, ... term = Fk else: xk = x[int(k) - 1] @@ -129,8 +130,21 @@ def solve_sdp(deltas, F_d, E, c, Q, tau=0.0, x_ref=np.array([0.0]), rho=0.0, nor else: non_risk_constraints = [] + # x is a vector here, so x_ref must be a scalar or a length-n vector: a + # (n, 1) column would be broadcast against x into an (n, n) matrix. + _xr = np.asarray(x_ref, dtype=float).reshape(-1) + if _xr.size == 1: + x_ref = float(_xr[0]) + elif _xr.size == n: + x_ref = _xr + else: + raise ValueError( + f"x̄ has {_xr.size} entries but d = {n}. Provide either a scalar " + f"(broadcast across all coordinates) or a length-{n} vector." + ) + # Objective Function - objective = cp.Minimize((1 / 2) * cp.quad_form(x, Q) + c.T @ x + tau * cp.norm(x - x_ref, norm_type) + rho * cp.sum(zeta)) + objective = cp.Minimize((1 / 2) * cp.quad_form(x, cp.psd_wrap(Q)) + c.T @ x + regularization_term(tau, x, x_ref, norm_type) + rho * cp.sum(zeta)) # Solve the problem prob = cp.Problem(objective, constraints + non_risk_constraints) diff --git a/tests/test_lp.py b/tests/test_lp.py index 1693116..acbf560 100644 --- a/tests/test_lp.py +++ b/tests/test_lp.py @@ -131,3 +131,52 @@ def test_lp_infeasible(): c=np.array([[-5], [-3]]), tau=0.0, x_ref=np.array([0, 0]), rho=0.0, norm_type=2, solver="SCS", ) + + +# ── Interval LP (smallest enclosing interval) used by the regression tests below ── +_INTERVAL = np.array([0.1, 0.4, 0.9]) + + +def _interval_A(delta): + return np.array([[-1.0, -1.0], [1.0, -1.0]]) + + +def test_lp_empty_deltas_raises_value_error(): + """No scenarios gives a clear ValueError (not an IndexError).""" + with pytest.raises(ValueError, match="at least one row"): + solve_lp(np.empty((0, 1)), _interval_A, lambda d: np.array([[d[0]], [-d[0]]]), + np.array([]), np.array([]), np.array([[0.0], [1.0]]), solver="CLARABEL") + + +def test_lp_one_dimensional_b_is_not_broadcast(): + """A 1-D b(δ) of shape (m,) gives the same solution as a (m, 1) column.""" + deltas = _INTERVAL.reshape(-1, 1) + c = np.array([[0.0], [1.0]]) + x_col, *_ = solve_lp(deltas, _interval_A, lambda d: np.array([[d[0]], [-d[0]]]), + np.array([]), np.array([]), c, solver="CLARABEL") + x_1d, *_ = solve_lp(deltas, _interval_A, lambda d: np.array([d[0], -d[0]]), + np.array([]), np.array([]), c, solver="CLARABEL") + np.testing.assert_allclose(x_1d, x_col, atol=1e-6) + np.testing.assert_allclose(x_col.ravel(), [0.5, 0.4], atol=1e-6) + + +def test_lp_without_regularization_is_a_pure_lp(): + """With τ = 0 no norm term is added, so an LP-only solver can solve it.""" + import cvxpy as cp + if "SCIPY" not in cp.installed_solvers(): + pytest.skip("SCIPY not installed") + x, zeta, cost, N, k, cons, degenerate = solve_lp( + _INTERVAL.reshape(-1, 1), _interval_A, lambda d: np.array([[d[0]], [-d[0]]]), + np.array([]), np.array([]), np.array([[0.0], [1.0]]), solver="SCIPY") + np.testing.assert_allclose(x.ravel(), [0.5, 0.4], atol=1e-6) + assert k == 2 and not degenerate + + +@pytest.mark.parametrize("p", [1, 1.5, 2, 3, "inf", "fro"]) +def test_lp_regularization_accepts_any_vector_norm(p): + """The regularization term is a vector norm, so any p >= 1, inf and fro work.""" + x, *_ = solve_lp(_INTERVAL.reshape(-1, 1), _interval_A, lambda d: np.array([[d[0]], [-d[0]]]), + np.array([]), np.array([]), np.array([[0.0], [1.0]]), + tau=0.01, x_ref=np.array([0.5, 0.4]), norm_type=float("inf") if p == "inf" else p, + solver="CLARABEL") + np.testing.assert_allclose(x.ravel(), [0.5, 0.4], atol=1e-5) diff --git a/tests/test_miscellaneous.py b/tests/test_miscellaneous.py index 572427b..ba68901 100644 --- a/tests/test_miscellaneous.py +++ b/tests/test_miscellaneous.py @@ -1,4 +1,4 @@ -from src.Miscellaneous import get_solvers, get_norm_types +from src.Miscellaneous import get_solvers, get_norm_types, SOLVER_CAPABILITIES, _cvxpy_capabilities def test_get_solvers(): @@ -20,4 +20,17 @@ def test_get_solvers_capabilities(): def test_get_norm_types(): """get_norm_types returns the expected list of norms.""" norms = get_norm_types() - assert norms == [1, 2, "inf", "fro", "nuc"] + assert norms == [1, 2, "inf", "fro"] + + +def test_solver_capabilities_match_cvxpy(): + """Table entries never claim a program type CVXPY says the solver cannot handle.""" + for name, types in SOLVER_CAPABILITIES.items(): + assert set(types) <= set(_cvxpy_capabilities(name)), name + + +def test_unlisted_solvers_use_cvxpy_metadata(): + """A solver missing from the table gets its types from CVXPY, not all three.""" + assert _cvxpy_capabilities("CUOPT") == ["LP"] + assert _cvxpy_capabilities("COPT") == ["LP", "QP", "SDP"] + assert _cvxpy_capabilities("NOT_A_SOLVER") == [] diff --git a/tests/test_qp.py b/tests/test_qp.py index 1149ea3..a38b1be 100644 --- a/tests/test_qp.py +++ b/tests/test_qp.py @@ -102,3 +102,13 @@ def test_qp_non_symmetric_q(): c=C_VEC, Q=Q_bad, tau=0.0, x_ref=np.array([0, 0]), rho=0.0, norm_type=2, solver="SCS", ) + + +def test_qp_rank_deficient_q_is_accepted(): + """A PSD Q whose zero eigenvalues come out as about -1e-16 is accepted.""" + D = np.array([[1.0, 2.0, 3.0], [2.0, 4.0, 6.0]]) + Q = D.T @ D # rank 1: two eigenvalues are zero up to rounding + scenarios = np.array([[0.0], [0.5]]) + x, *_ = solve_qp(scenarios, lambda d: np.array([[-1.0, 0.0, 0.0]]), lambda d: np.array([[d[0]]]), + np.array([]), np.array([]), np.zeros((3, 1)), Q, solver="CLARABEL") + assert x is not None diff --git a/tests/test_sdp.py b/tests/test_sdp.py index 6a0c221..20086bb 100644 --- a/tests/test_sdp.py +++ b/tests/test_sdp.py @@ -102,3 +102,46 @@ def test_sdp_non_psd_q(): Q=Q_bad, tau=0.0, x_ref=np.zeros(2), rho=0.0, norm_type=2, solver="SCS", ) + + +def _lpv_problem(): + """LPV stability example (Example SDP1): x = (p11, p12, p22).""" + def F_d(delta): + d = delta[0] + return {'0': np.zeros((2, 2)), + '1': np.array([[0.0, 1.0], [1.0, 0.0]]), + '2': np.array([[-4 + 0.6 * d, -1 + 0.1 * d], [-1 + 0.1 * d, 2.0]]), + '3': np.array([[0.0, 0.3 * d - 2], [0.3 * d - 2, -2 + 0.2 * d]])} + E = {'0': np.zeros((2, 2)), '1': -np.array([[1.0, 0], [0, 0]]), + '2': -np.array([[0, 1.0], [1.0, 0]]), '3': -np.array([[0, 0], [0, 1.0]])} + deltas = np.linspace(-0.2, 1.0, 7).reshape(-1, 1) + c = np.array([[-1.0], [0.0], [-1.0]]) + return deltas, F_d, E, c, 0.1 * np.eye(3) + + +def test_sdp_integer_keys_match_string_keys(): + """Matrix dicts keyed 0, 1, ... give the same solution as keys '0', '1', ...""" + deltas, F_d, E, c, Q = _lpv_problem() + x_str, *_ = solve_sdp(deltas, F_d, E, c, Q, rho=1.0, solver="CLARABEL") + F_int = lambda delta: {int(k): v for k, v in F_d(delta).items()} + E_int = {int(k): v for k, v in E.items()} + x_int, *_ = solve_sdp(deltas, F_int, E_int, c, Q, rho=1.0, solver="CLARABEL") + np.testing.assert_allclose(x_int, x_str, atol=1e-5) + + +def test_sdp_empty_q_means_no_quadratic_term(): + """An empty Q is the same as a zero matrix.""" + deltas, F_d, E, c, _ = _lpv_problem() + E_bounded = dict(E, **{'0': 0.0 * np.eye(2)}) + # Without Q, the regularization (τ = 2 > √2) is what keeps max trace(P) bounded. + x_empty, *_ = solve_sdp(deltas, F_d, E_bounded, c, np.array([]), tau=2.0, rho=1.0, solver="CLARABEL") + x_zero, *_ = solve_sdp(deltas, F_d, E_bounded, c, np.zeros((3, 3)), tau=2.0, rho=1.0, solver="CLARABEL") + np.testing.assert_allclose(x_empty, x_zero, atol=1e-5) + + +def test_sdp_column_x_ref_matches_vector_x_ref(): + """x_ref given as a (d, 1) column gives the same solution as a 1-D vector.""" + deltas, F_d, E, c, Q = _lpv_problem() + x_vec, *_ = solve_sdp(deltas, F_d, E, c, Q, tau=0.5, x_ref=np.array([1.0, 0.0, 1.0]), rho=1.0, solver="CLARABEL") + x_col, *_ = solve_sdp(deltas, F_d, E, c, Q, tau=0.5, x_ref=np.array([[1.0], [0.0], [1.0]]), rho=1.0, solver="CLARABEL") + np.testing.assert_allclose(x_col, x_vec, atol=1e-5) From c544a1b9a4008451930029d71a29211faebc00b8 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:49:26 -0500 Subject: [PATCH 08/14] Accept plain numbers and SymPy-style names in matrix entries - Plain numbers (from JSON paste boxes, program files or MAT files) are accepted; they crashed the solve with HTTP 500 before. - sin, cos, exp, log, sqrt, abs, pi, e and similar names work without the math. prefix, and ^ means power, as in SymPy. ^ is replaced by ** before parsing so it keeps the right precedence. math.sin still works, and every other name is still rejected. - A scalar scenario can be indexed as delta[0]. - Constant matrix collections (E) evaluate entries like other matrices, so "1/2" works there too. Co-Authored-By: Claude Opus 5.5 --- src/parsing.py | 53 +++++++++++++++++++++++++++++++++++-------- tests/test_parsing.py | 40 ++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 9 deletions(-) diff --git a/src/parsing.py b/src/parsing.py index 50e81f1..f373779 100644 --- a/src/parsing.py +++ b/src/parsing.py @@ -5,7 +5,8 @@ # Untrusted matrix/tensor cells arrive from the public web form, so they are # evaluated by a restricted AST walker instead of eval(): only numeric -# literals, + - * / // % **, unary +/-, the name `delta` (indexed), and +# literals, + - * / // % ** (and ^ as a power, as in SymPy), unary +/-, the +# name `delta` (indexed), the functions and constants below, and # `math.(...)` are permitted. Anything else raises ValueError, which # closes the remote-code-execution path that eval() with an open namespace # would otherwise expose. @@ -16,18 +17,32 @@ } _UNARYOPS = {ast.UAdd: operator.pos, ast.USub: operator.neg} +# SymPy-style names, so cells can say sin(delta[0]) instead of math.sin(delta[0]). +_FUNCTIONS = { + 'sin': math.sin, 'cos': math.cos, 'tan': math.tan, + 'asin': math.asin, 'acos': math.acos, 'atan': math.atan, 'atan2': math.atan2, + 'sinh': math.sinh, 'cosh': math.cosh, 'tanh': math.tanh, + 'exp': math.exp, 'log': math.log, 'ln': math.log, 'log10': math.log10, 'log2': math.log2, + 'sqrt': math.sqrt, 'abs': abs, 'Abs': abs, + 'floor': math.floor, 'ceiling': math.ceil, 'ceil': math.ceil, + 'min': min, 'Min': min, 'max': max, 'Max': max, +} +_CONSTANTS = {'pi': math.pi, 'e': math.e, 'E': math.e} + def safe_eval(expr, delta=None): """Safely evaluate a scalar arithmetic expression over `delta` and `math`. Parameters ---------- - expr : str + expr : str or number Expression such as ``"delta[0]"``, ``"-delta[3]"``, ``"0.5"``, - or ``"math.sin(delta[1])"``. - delta : sequence or None - The uncertainty vector referenced by ``delta[i]``; ``None`` for - constant expressions. + ``"sin(delta[1])"``, ``"delta[0]^2"`` or ``"math.sin(delta[1])"``. + A plain number (e.g. from a JSON or MAT file) is returned as a float. + delta : sequence, scalar or None + The uncertainty vector referenced by ``delta[i]`` (a scalar is + treated as a vector with one component); ``None`` for constant + expressions. Returns ------- @@ -54,9 +69,19 @@ def ev(node): if delta is None: raise ValueError("delta is not available in this expression") return delta + if node.id in _CONSTANTS: + return _CONSTANTS[node.id] + if node.id in _FUNCTIONS: + return _FUNCTIONS[node.id] raise ValueError(f"disallowed name: {node.id}") if isinstance(node, ast.Subscript): - return ev(node.value)[int(ev(node.slice))] + base, index = ev(node.value), int(ev(node.slice)) + if np.ndim(base) == 0: # a scalar scenario has one component + base = [base] + try: + return base[index] + except IndexError: + raise ValueError(f"delta[{index}] does not exist: the scenario has {len(base)} component(s)") if isinstance(node, ast.Attribute): if isinstance(node.value, ast.Name) and node.value.id == "math" \ and not node.attr.startswith("_"): @@ -69,7 +94,17 @@ def ev(node): return func(*[ev(a) for a in node.args]) raise ValueError(f"disallowed expression element: {type(node).__name__}") - return ev(ast.parse(expr, mode="eval")) + if isinstance(expr, (int, float, np.integer, np.floating)) and not isinstance(expr, bool): + return float(expr) + # ^ means power, as in SymPy. It is replaced before parsing so that it gets + # the precedence of ** (Python's ^ is XOR, which binds more loosely than +). + try: + value = ev(ast.parse(expr.replace("^", "**"), mode="eval")) + except TypeError as error: # e.g. a function applied to the wrong arguments + raise ValueError(f"invalid expression {expr!r}: {error}") + if isinstance(value, bool) or not isinstance(value, (int, float, np.integer, np.floating)): + raise ValueError(f"expression {expr!r} does not evaluate to a number") + return value def generate_matrix_function(expr_matrix_str): @@ -114,7 +149,7 @@ def generate_tensor(expr_matrix_str): """Evaluate a dict of matrix expression strings (no delta dependency) into numpy arrays.""" expr_dict = ast.literal_eval(expr_matrix_str) return { - key: np.array([[float(cell) for cell in row] for row in expr_dict[key]]) + key: np.array([[safe_eval(cell) for cell in row] for row in expr_dict[key]]) for key in expr_dict } diff --git a/tests/test_parsing.py b/tests/test_parsing.py index a3a6568..6f0fa09 100644 --- a/tests/test_parsing.py +++ b/tests/test_parsing.py @@ -53,3 +53,43 @@ def test_generate_tensor(): ) np.testing.assert_array_equal(result["0"], np.array([[1, 0], [0, 1]])) np.testing.assert_array_equal(result["1"], np.array([[2, 0], [0, 3]])) + + +def test_numeric_entries_are_accepted(): + """Plain numbers (from JSON or MAT files) work like their string form.""" + np.testing.assert_allclose(generate_matrix('[[0], [1]]'), [[0.0], [1.0]]) + f = generate_matrix_function('[[-1, 2.5], ["delta[0]", 0]]') + np.testing.assert_allclose(f(np.array([3.0])), [[-1.0, 2.5], [3.0, 0.0]]) + t = generate_tensor_function('{"0": [[1, "delta[0]"]]}') + np.testing.assert_allclose(t(np.array([2.0]))["0"], [[1.0, 2.0]]) + + +def test_constant_tensor_accepts_expressions(): + """E matrices accept constant expressions like '1/2', as other matrices do.""" + E = generate_tensor('{"0": [["1/2", "0"], ["0", "-1"]]}') + np.testing.assert_allclose(E["0"], [[0.5, 0.0], [0.0, -1.0]]) + + +def test_scalar_scenario_is_indexable(): + """A scalar scenario (from a 1-D scenarios array) has one component, delta[0].""" + f = generate_matrix_function('[["delta[0]", "-delta[0]"]]') + np.testing.assert_allclose(f(0.25), [[0.25, -0.25]]) + + +def test_sympy_style_names(): + """SymPy-style functions, constants and ^ work without the math. prefix.""" + from src.parsing import safe_eval + d = np.array([0.5, 2.0]) + assert math.isclose(safe_eval("sin(delta[0])", d), math.sin(0.5)) + assert math.isclose(safe_eval("delta[1]^2 + sqrt(delta[1])", d), 4 + math.sqrt(2)) + assert math.isclose(safe_eval("Abs(-pi) + ln(E)", d), math.pi + 1) + assert math.isclose(safe_eval("math.exp(delta[0])", d), math.exp(0.5)) # still accepted + + +def test_disallowed_names_are_rejected(): + """Names outside the whitelist are still rejected.""" + import pytest + from src.parsing import safe_eval + for bad in ["__import__('os')", "open('x')", "eval('1')", "sin"]: + with pytest.raises(ValueError): + safe_eval(bad, np.array([1.0])) From b205fb6d2cbf2d19982b86f4f0b0472973f01f6b Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:49:26 -0500 Subject: [PATCH 09/14] Validate quantify_risk inputs and keep float64 local to it - Raise ValueError for N < 1, k outside 0..N, or beta outside (0, 1); k > N used to return (0, 1) and N = 0 divided by zero. - Enable JAX float64 only inside quantify_risk (jax.experimental .enable_x64) instead of for the whole Python process. - Return plain floats (epsU was the integer 1 when k = N). - Remove the unused quantify_conf stub. The computed bounds are unchanged. Co-Authored-By: Claude Opus 5.5 --- src/Risk.py | 37 +++++++++++++++++++++++-------------- tests/test_risk.py | 19 +++++++++++++++++++ 2 files changed, 42 insertions(+), 14 deletions(-) diff --git a/src/Risk.py b/src/Risk.py index acc340b..ee630cb 100644 --- a/src/Risk.py +++ b/src/Risk.py @@ -1,10 +1,10 @@ -import jax # The bisection compares two betainc terms whose difference is ~1e-8 near the # upper root; in JAX's default float32 that difference is pure noise, which # flips the comparison and can leave epsU understated by up to ~0.01 at # beta=1e-6 (the high-confidence regime this tool targets). float64 makes the -# root agree with a float64 SciPy reference to ~1e-10. -jax.config.update("jax_enable_x64", True) +# root agree with a float64 SciPy reference to ~1e-10. It is switched on only +# inside quantify_risk (enable_x64), not for the whole Python process. +from jax.experimental import enable_x64 from jax.scipy.special import betainc def quantify_risk(k,N,beta): @@ -36,12 +36,30 @@ def quantify_risk(k,N,beta): epsU : float Upper bound on the constraint violation probability. + Raises + ------ + ValueError + If ``N < 1``, ``k`` is not between 0 and ``N``, or ``beta`` is not + strictly between 0 and 1. + Notes ----- The incomplete beta function ``betainc`` used here follows the JAX/SciPy argument convention, which differs from MATLAB (the first argument appears last in JAX). """ + if int(N) != N or N < 1: + raise ValueError(f"N must be a positive integer (got {N}).") + if int(k) != k or not 0 <= k <= N: + raise ValueError(f"k must be an integer between 0 and N = {N} (got {k}).") + if not 0 < beta < 1: + raise ValueError(f"beta must lie strictly between 0 and 1 (got {beta}).") + with enable_x64(): + return _risk_bounds(int(k), int(N), beta) + + +def _risk_bounds(k, N, beta): + """Bisection for the lower and upper risk bounds (see quantify_risk).""" t1 = 0.0 t2 = k/N threshold = 1e-10 @@ -61,7 +79,7 @@ def quantify_risk(k,N,beta): #print("epsL = ", epsL) if (k==N): - epsU = 1 #set upper bound + epsU = 1.0 #set upper bound else: t1 = k/N t2 = 1 @@ -78,13 +96,4 @@ def quantify_risk(k,N,beta): epsU = t2 #set upper bound #print("epsU = ", epsU) # Return results - return epsL, epsU - -def quantify_conf(): - """ - To create... - """ - - - # Return results - return 0.0 \ No newline at end of file + return float(epsL), float(epsU) \ No newline at end of file diff --git a/tests/test_risk.py b/tests/test_risk.py index 0900ec4..01cb4fe 100644 --- a/tests/test_risk.py +++ b/tests/test_risk.py @@ -1,3 +1,6 @@ +import numpy as np +import pytest + from src.Risk import quantify_risk @@ -39,3 +42,19 @@ def test_risk_bounds_high_beta(): _, epsU_low_beta = quantify_risk(k=10, N=4000, beta=1e-9) _, epsU_high_beta = quantify_risk(k=10, N=4000, beta=1e-3) assert epsU_high_beta < epsU_low_beta + + +def test_risk_invalid_inputs_raise(): + """k > N, N = 0 and β outside (0, 1) raise ValueError.""" + for k, N, beta in [(3, 2, 1e-6), (0, 0, 1e-6), (1, 10, 0.0), (1, 10, 1.0)]: + with pytest.raises(ValueError): + quantify_risk(k, N, beta) + + +def test_risk_returns_floats_and_keeps_x64_local(): + """Bounds are plain floats, and importing Risk does not switch JAX to 64-bit globally.""" + import jax + epsL, epsU = quantify_risk(5, 5, 1e-6) + assert isinstance(epsL, float) and isinstance(epsU, float) and epsU == 1.0 + assert not jax.config.jax_enable_x64 + np.testing.assert_allclose(quantify_risk(2, 100, 1e-6)[1], 0.20852406, atol=1e-8) From e2a08a354e73209e3dfb28efa88234c62fe9d8d3 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:49:26 -0500 Subject: [PATCH 10/14] Web interface: withhold uncertified lower bounds and tidy messages - When degeneracy is detected, the results table shows the lower risk bound as N/A and the graphs leave it out, as described in the paper. - On the hosted app, a solve that runs for more than 30 s shows a note that problems of this size are better solved locally, with a link to the local install guide. - The confidence parameter must be between 0 and 1 before solving. - Server input errors are shown as a message instead of a raw response. - The confidence row shows enough digits (0.999999, not 1.0000), and the Risk Bounds, Total Constraints and Optimization Time rows have tooltips. - The cell help describes the accepted expressions (sin(), exp(), ^, ...) instead of promising SymPy. Co-Authored-By: Claude Opus 5.5 --- static/js/main.js | 77 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 58 insertions(+), 19 deletions(-) diff --git a/static/js/main.js b/static/js/main.js index b35150b..0141106 100644 --- a/static/js/main.js +++ b/static/js/main.js @@ -232,9 +232,9 @@ function openMatrixModal(tab, matrix) { function getDynamicTip(matrix) { if (matrix === 'A_d') { - return "Manually enter the matrix. Cells accept SymPy expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, **."; + return "Manually enter the matrix. Cells accept expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, ** (or ^) and functions such as sin(), exp(), sqrt()."; } else if (matrix === 'b_d') { - return "Manually enter the vector. Cells accept SymPy expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, **."; + return "Manually enter the vector. Cells accept expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, ** (or ^) and functions such as sin(), exp(), sqrt()."; } else if (matrix === 'Q') { return "Manually enter the matrix. \\(Q\\) must be symmetric and positive semidefinite (\\(Q \\succeq 0\\))."; } else if (matrix === 'c') { @@ -244,11 +244,11 @@ function getDynamicTip(matrix) { } else if (matrix === 'h') { return "Manually enter the hard constraint vector."; } else if (matrix === 'F_d') { - return "Manually enter the matrices. Each \\(F_j(\\delta)\\) must be symmetric. Cells accept SymPy expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, **."; + return "Manually enter the matrices. Each \\(F_j(\\delta)\\) must be symmetric. Cells accept expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, ** (or ^) and functions such as sin(), exp(), sqrt()."; } else if (matrix === 'E') { return "Manually enter the matrices. Each \\(E_j\\) must be symmetric."; } else if (matrix === 'A_da') { - return "Manually enter the matrices. Each \\(A_j(\\delta)\\) must be symmetric. Cells accept SymPy expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, **."; + return "Manually enter the matrices. Each \\(A_j(\\delta)\\) must be symmetric. Cells accept expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, ** (or ^) and functions such as sin(), exp(), sqrt()."; } else if (matrix === 'A_a') { return "Manually enter the matrices. Each \\(G_j\\) must be symmetric."; } else if (matrix === 'C') { @@ -258,7 +258,7 @@ function getDynamicTip(matrix) { } else if (matrix === 'theta-bar') { return "Manually enter the reference vector."; } else if (matrix === 'b_da') { - return "Manually enter the vectors. Cells accept SymPy expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, **."; + return "Manually enter the vectors. Cells accept expressions with delta[k] (delta[0] = 1st component of vector \\(\\delta\\), delta[1] = 2nd component of vector \\(\\delta\\), ...) including +, -, *, /, ** (or ^) and functions such as sin(), exp(), sqrt()."; } else if (matrix === 'b_a') { return "Manually enter the vectors."; } @@ -294,9 +294,9 @@ function updateFormatReference(matrix) { // ── Cell content rules ── let html = '
Cell content:
'; if (isDelta) { - html += '

This matrix is delta-capable — cells accept numeric values or SymPy expressions that reference ' + + html += '

This matrix is delta-capable — cells accept numeric values or expressions that reference ' + 'delta[k] (delta[0] = 1st component of \\(\\delta\\), delta[1] = 2nd component of \\(\\delta\\), \\(\\ldots\\)). ' + - 'Operators + - * / ** and functions like sin(), exp() are allowed. ' + + 'Operators + - * / ** and functions such as sin(), cos(), exp(), log(), sqrt(), abs() and the constants pi, e are allowed (^ also means power). ' + 'Example cells: delta[0] + 1, sin(delta[1]), 2.5.

'; html += '

Mode note: this matrix is only editable when the Symbolic input mode is selected. ' + 'In Numeric mode, \\(A(\\delta_i)\\) and \\(b(\\delta_i)\\) come directly from the uploaded scenario data ' + @@ -372,9 +372,9 @@ function updateSDPFormatReference(matrix) { html += '

Cell content:
'; if (isSoft) { - html += '

Each matrix is delta-capable — cells accept numeric values or SymPy expressions that reference ' + + html += '

Each matrix is delta-capable — cells accept numeric values or expressions that reference ' + 'delta[k] (delta[0] = 1st component of \\(\\delta\\), delta[1] = 2nd component of \\(\\delta\\), \\(\\ldots\\)). ' + - 'Operators + - * / ** and functions like sin(), exp() are allowed. ' + + 'Operators + - * / ** and functions such as sin(), cos(), exp(), log(), sqrt(), abs() and the constants pi, e are allowed (^ also means power). ' + 'Every matrix must be symmetric.

'; html += '

Mode note: scenario LMI matrices \\(F_j(\\delta)\\) are only editable when the Symbolic input mode is selected. ' + 'In Numeric mode, \\(F_{0,i}, F_{1,i}, \\ldots, F_{d,i}\\) come directly from the uploaded scenario data ' + @@ -431,7 +431,7 @@ function isCurrentMatrixDeltaCapable() { /** * Validate a single cell's text against the delta-capable rule: * • numeric-only → must parse as a finite number - * • delta-capable → either a finite number, or a SymPy-ish expression + * • delta-capable → either a finite number, or an expression in delta[k] * Returns '' if valid, otherwise a short reason. */ function validateCellText(text, deltaCapable) { @@ -1218,6 +1218,16 @@ function solve() { const check = validateSolveInputs(); if (!check.valid) return; + const beta = Number((document.getElementById('confidence') || {}).value); + if (!(beta > 0 && beta < 1)) { + const errEl = document.getElementById('solve-error'); + if (errEl) { + errEl.textContent = 'Enter the confidence parameter β, a number between 0 and 1 (e.g. 1e-06).'; + errEl.style.display = 'block'; + } + return; + } + const selectedSolver = document.getElementById('solver').value; if (selectedSolver === 'MOSEK') { @@ -1295,6 +1305,15 @@ function executeSolve(mosekLicenseFile) { document.getElementById('result-box').innerHTML = '

Solve button pressed, processing results...

'; + // On the hosted app, suggest a local install once a solve runs for a while. + const isLocalHost = ['localhost', '127.0.0.1', '[::1]', ''].includes(window.location.hostname); + const slowSolveTimer = isLocalHost ? null : setTimeout(function() { + const box = document.getElementById('result-box'); + if (box) box.insertAdjacentHTML('beforeend', + '
This problem is taking a while: problems of this size are better solved locally. ' + + 'See the local install guide.
'); + }, 30000); + fetch(activeForm.action, { method: activeForm.method, body: formData @@ -1302,7 +1321,12 @@ function executeSolve(mosekLicenseFile) { .then(response => { if (!response.ok) { return response.text().then(text => { - throw new Error('Server error (' + response.status + '): ' + text); + let message = 'Server error (' + response.status + '): ' + text; + try { + const body = JSON.parse(text); + if (body && body.error) message = body.error; + } catch (e) { /* not JSON: keep the raw text */ } + throw new Error(message); }); } return response.json(); @@ -1379,7 +1403,11 @@ function executeSolve(mosekLicenseFile) { $('#result-box .result-help-btn').popover({ trigger: 'hover', html: true }); // Prepare risk lower and upper arrays - const riskLower = Array.isArray(data.risk) ? data.risk.map(r => Array.isArray(r) ? r[0] : r) : [data.risk]; + // A degenerate run's lower bound is not certified, so it is left off the graphs (null = gap). + const degenerateRuns = Array.isArray(data.degeneracy) ? data.degeneracy : [data.degeneracy]; + const riskLower = Array.isArray(data.risk) + ? data.risk.map((r, i) => degenerateRuns[i] ? null : (Array.isArray(r) ? r[0] : r)) + : [degenerateRuns[0] ? null : data.risk]; const riskUpper = Array.isArray(data.risk) ? data.risk.map(r => Array.isArray(r) ? r[1] : r) : [data.risk]; // Assume data.rho_ and data.tau_ are arrays of equal length, and each (rho, tau) pair is unique @@ -1581,7 +1609,8 @@ function executeSolve(mosekLicenseFile) { console.error('Error:', error); document.getElementById('result-box').innerHTML = '
Error: ' + error.message + '
'; - }); + }) + .finally(() => clearTimeout(slowSolveTimer)); } function generateResultTable(data) { @@ -1646,12 +1675,18 @@ function generateResultTable(data) { if (opt === 'regularization-relaxation') return 'Confidence \\(1 - \\beta \\cdot n_{\\tau} \\cdot n_{\\rho}\\)'; return 'Confidence \\(1 - \\beta\\)'; })(), values: data.conf}, - {label: 'Risk Bounds ε', values: data.risk}, + {label: `Risk Bounds ε `, values: data.risk}, {label: 'Degeneracy Detected?', values: data.degeneracy}, {label: 'Complexity (support list size)', values: data.active_con}, {label: 'Number of data samples', values: data.num_deltas}, - {label: 'Total Constraints', values: data.tot_con}, - {label: 'Optimization Time (s)', values: data.solve_time}, + {label: `Total Constraints `, values: data.tot_con}, + {label: `Optimization Time (s) `, values: data.solve_time}, {label: 'Risk Computation Time (s)', values: data.risk_time}, {label: 'Error', values: data.errorcode} ]; @@ -1690,14 +1725,18 @@ function generateResultTable(data) { } if (row.label.includes('Risk Bounds') && Array.isArray(val) && val.length === 2) { - val = `[${fmt(val[0])}, ${fmt(val[1])}]`; + const degenerate = getValue(data.degeneracy, i) === true; + val = `[${degenerate ? 'N/A' : fmt(val[0])}, ${fmt(val[1])}]`; } else if (row.label.includes('Confidence')) { // Clamp at 0 — over-aggressive sweeps can push 1 − β·q below // zero, which is nonsensical to display. Reuse fmt() so a // tiny but positive confidence still prints in scientific // form rather than rounding to 0.0000. - const v = Number(val); - val = Number.isFinite(v) ? fmt(Math.max(0, v)) : val; + // Show enough digits that 1 − β is not rounded to 1.0000. + const v = Math.max(0, Number(val)); + val = Number.isFinite(v) + ? (v > 0.9999 && v < 1 ? String(Number(v.toPrecision(12))) : fmt(v)) + : val; } else if (row.label.includes('Optimal Cost')) { val = `${fmt(val)}`; } else if (row.label.includes('Error')) { From dfbc5d7f00f592f02a103145ac2a1d442589e575 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:49:26 -0500 Subject: [PATCH 11/14] Docker: build for ARM too, honour GUNICORN_CMD_ARGS, drop duplicate workflow - Build the published image for linux/arm64 as well as linux/amd64. - The default worker count is set with GUNICORN_CMD_ARGS, so -e GUNICORN_CMD_ARGS="--workers 4" now works (the command line used to override it). - Remove docker.yml: docker-publish.yml already builds on every push to master and on release tags, and both pushed :latest. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/docker-publish.yml | 11 +++--- .github/workflows/docker.yml | 52 ---------------------------- DOCKER.md | 2 ++ Dockerfile | 5 ++- 4 files changed, 13 insertions(+), 57 deletions(-) delete mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 8531c72..fa04e20 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -22,6 +22,10 @@ jobs: - name: Checkout uses: actions/checkout@v4 + # QEMU emulates arm64 so the image can also be built for it. + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + # Buildx is needed for multi-arch builds and layer caching. - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -54,7 +58,6 @@ jobs: labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max - # Publish for x86_64 Linux hosts. Add ,linux/arm64 here if you - # also want ARM (e.g. M-series Mac / Pi 4+) — it roughly doubles - # build time because there's no native arm64 runner on public GH. - platforms: linux/amd64 + # x86_64 hosts and ARM hosts (e.g. Apple silicon Macs). The arm64 + # build runs under QEMU, which roughly doubles the build time. + platforms: linux/amd64,linux/arm64 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index b551a85..0000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Docker - -on: - push: - branches: [master] - paths: - - 'app.py' - - 'src/**' - - 'templates/**' - - 'static/**' - - 'requirements.txt' - - 'requirements-solvers.txt' - - 'Dockerfile' - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - -jobs: - build-and-push: - runs-on: ubuntu-22.04 - - permissions: - contents: read - packages: write - - steps: - - uses: actions/checkout@v4 - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - type=raw,value=latest - type=sha,prefix= - - - name: Build and push - uses: docker/build-push-action@v6 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} diff --git a/DOCKER.md b/DOCKER.md index ff49258..24f90a3 100644 --- a/DOCKER.md +++ b/DOCKER.md @@ -14,6 +14,8 @@ Run the pre-built image from the GitHub Container Registry (use a release tag su docker run -p 5000:5000 ghcr.io/kiguli/scen-opt:latest ``` +The image is built for both x86_64 and ARM (e.g. Apple silicon) machines. + Or build the image yourself: ```bash diff --git a/Dockerfile b/Dockerfile index 234bb75..17b7418 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,4 +30,7 @@ USER appuser EXPOSE 5000 -CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "2", "--timeout", "7200", "app:app"] +# Default worker count. Override with -e GUNICORN_CMD_ARGS="--workers 4". +ENV GUNICORN_CMD_ARGS="--workers 2" + +CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--timeout", "7200", "app:app"] From d05557a41e6735fc297b3c6b3776a25a24d27f24 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 21:49:26 -0500 Subject: [PATCH 12/14] Fix README details and refresh the screenshots - README: Python 3.10 or newer, MOSEK is installed by requirements.txt but needs a licence (and is the recommended solver), the dialog button is "I have a local license", and p is any number >= 1, inf or fro. - take_screenshots.py works again (repository-relative paths, current program file and option names) and writes screenshots/scrn_*.png, which are regenerated from the current interface. Co-Authored-By: Claude Opus 5.5 --- README.md | 8 +++---- screenshots/scrn_1_tool.png | Bin 168546 -> 101488 bytes screenshots/scrn_2_results.png | Bin 152176 -> 132260 bytes screenshots/scrn_3_tau_graph.png | Bin 75396 -> 51032 bytes screenshots/scrn_4_rho_graph.png | Bin 90129 -> 45421 bytes take_screenshots.py | 39 ++++++++++++++++++++----------- 6 files changed, 30 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 8bd1731..98d4a66 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ The tool is implemented as a Python Flask web application with a modern JavaScri ## Installation -**Prerequisites:** Python 3.12+ and pip. +**Prerequisites:** Python 3.10 or newer (3.12 recommended) and pip. ```bash # Clone the repository @@ -26,7 +26,7 @@ python3 app.py The server starts at `http://127.0.0.1:5000`. Open this URL in a browser to access the web interface. -**Optional:** For best performance on SDP problems, install [MOSEK](https://www.mosek.com/) (free academic license available). See [MOSEK Support](#mosek-support) for license configuration. +**MOSEK:** [MOSEK](https://www.mosek.com/) is the recommended solver: it is the most stable for these problems and was used for all published results. Its Python package is installed by `requirements.txt`, but it needs a licence (free for academics). See [MOSEK Support](#mosek-support) for license configuration. ## Quick Start @@ -94,7 +94,7 @@ where the scenario constraints are Linear Matrix Inequalities (LMIs) parameteriz | Scenarios | delta_i | Sampled uncertainty realizations (N samples) | | Slack penalty | rho | Penalty on constraint relaxation (rho = 0 means hard scenario constraints) | | Regularization | tau | Regularization strength toward reference point x_ref | -| Norm type | p | Norm for regularization (1, 2, inf, fro, nuc) | +| Norm type | p | Norm for regularization (any p ≥ 1, inf, or fro) | | Confidence | beta | Confidence parameter for risk bounds (e.g. beta = 0.01 for 99% confidence) | ### Risk Quantification @@ -269,7 +269,7 @@ Identifies the support list of a solved scenario program: the constraints whose - **License upload:** When MOSEK is selected as the solver, a modal prompts you to upload your `mosek.lic` file. The license is **not** stored on the server. - **Browser caching:** After the first upload, the license is cached in your browser's session storage. Subsequent solves skip the modal automatically. A cache indicator and "Clear" button appear below the solver dropdown. -- **Local license:** If MOSEK is installed locally with a system license (e.g., at `~/mosek/mosek.lic`), click "Skip" in the modal to use it directly. +- **Local license:** If MOSEK is installed locally with a system license (e.g., at `~/mosek/mosek.lic`), click "I have a local license" in the modal to use it directly. - **Concurrent users:** Each MOSEK solve with an uploaded license runs in an isolated subprocess with the license written to an ephemeral `/tmp` directory (RAM-backed, auto-purged). Multiple users can solve simultaneously without conflicts. ## Docker diff --git a/screenshots/scrn_1_tool.png b/screenshots/scrn_1_tool.png index c2d4f1b03c9882794e2010b5119e679170453c2f..d7fbd5e75a7ed4beb4136dec23cbd370a4b505a8 100644 GIT binary patch literal 101488 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≪ZN$(14GwyN#O1z7BZ?yd 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

bjP+~{nz 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

ExDk|>L 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 diff --git a/screenshots/scrn_2_results.png b/screenshots/scrn_2_results.png index 85fd6f973190c38535ba017926433e93f5edfcef..372b7ba1d90a5ef33fd4bcd415ee180b96d9be9a 100644 GIT binary patch literal 132260 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

)2Fv2ln3SZDMELE@3_1F>m9s-R(H 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 sx#fOx&7DLbLI&b%7 literal 152176 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

C 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%0D;JD^tYyvA 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

4LEd+XzA&< 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 diff --git a/screenshots/scrn_3_tau_graph.png b/screenshots/scrn_3_tau_graph.png index 3340a2d861c8968a9aca7783d739d64364488001..d605197ff84087f5654258d29ff2701d6312c356 100644 GIT binary patch literal 51032 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̸C*on=r!#YjA7NL`*kuZY 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
3kX%9HWP0;rH`VFSt})`jtPA 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%0Ac zAinX`crrj~_fJ(8mk6reu5Mq22Q*-Hq_lRSv9WP3XJ=bP~)oIsZlot&Ih zi})~n@F=?}nd#^dgSj|ov2b?bmOt?rGl|N7(B;E#1OA`nNi9c?Sb^0_@J*BY?U!mras0Et`1xiS^X zf^XV&(sBHcl)o+%a&mg~FwNqriR5RCn4o^zNG@JnZz}TCi-#=X54pNK+W&ns@RAid z(BC3HMQ=n2^5?Y&^0?vha9jM_$cVIhYw3FQAyWOD8zwkOph|hGhLM=Id%2VcBcI==L0Ao;}A!7$VvzmjMrRj zc)%SXdK)mZj>s$fCW^AVI_6uNGmuzV*m-YqcJ}?x`_#_8Ge76m+Hw?t7YRl)wCb_$p5pve19oVN}X=*9baRsqqei@_DV5}qf5i!n6H&BB-lg5}lKO|*LiX|5?`$TTi+ z1V*=3z&}4R2?*)UyNx?n_fAe~awUpWLNoMZ&d^Y)r016uF}>mKMRauR&U0D#-%rsX zRt~%=dJ_M6Bk zD75yw_pm7+_g?N_8;G~YDflg}gzS?9h|P7!1g(NvA3$ksG2h|10pnxTeG~x!feT-W z`2d(6XPfN`mVcJVLjmiR*3bGo3HKTYGGvzXi(NXXJ_gDP?eqV>d`R^PuvZL3m3UXg zJA;6cnOUUe1J2-A<6;uI{%5iv8;7 z`KFUsglMvP$9ehP#&=*yQR-ay*> zq|Ph3QRuk1{THGD4F>{bp4Fy*MZ`-oh1}c(lnXT9BOUE6x2J$W@T2TU@mCS7mz!Pk z4n%_Ca`PNll*x=WFm=dwQHgOh! z4pQXrfbt@zs`^m|%)~f7K0wF8shNg^v%X5SFqVe}UeTL5L^YMKg^t#A?QxHCcz0cE zT=e3Pttm-J($D?8m9%GcG`ZPm1wN<(KT%gF&(6+VF^Y(T3cM4*R)0pg$6x2hq<~FQ{mqO9r=0Tx{+D3HuG~ z^_`tYs3%gA*9N2;jC8;!An@wqHhLGyX@q;a?j!g*&rZGELTkW~gxM(3f63hdg4F2-TRzIFK*UiLVZm2^))~=wB2{lASya8aZ&;j+hU?Y2F8S}6R+&&ow1SkP z74wy$VZRe13cUf#MtCM3>XnCa~s7s~n6<5r-ZUQ22 z`C8{;GASu(jI7)ar+++w_XgqZ$jfggK+JZkBHtMceSR`z-nF7d8R7|f7Qc2ysO;}p zEl!EjyH%r;k&!`cTwV>{`WVNB<>~2pDf17MCIP-Vd^Yer`T+)DT-JkffYth>Fi1!6 ze*XN4j*c#5Wo4z{Fp;?mGON$N%vb&F6Cs?zlH(qO{XG?(McjcTeQ|oeqHAEX!=<(- z79pm)&8M%*#PenKCFcm$08(HiO`aX7@g&#q@$s#L&cR6K(nDS(yBxx;YggXeAAhjg zm=IWdAubygcZ!@;ldtK`?a+^3ZrvW&NZ70#ap=zhCMD6qk1}#KSMMaZR zQ;|XRlKwKLnp3VEgA?z`KjS2q09{nbD5B@U2k1XUNnG%dF}*DkS5Q#!(&gl`BvO$K zKbBA#XaGjnA^hk{#8;8yf%z*WoUM67UuUV`cY(;0n*ZcME=O`POb8zT6BTm8b=qFU z@$ui!fGQ#P_KIgQF%8z*#aNK1D$~+N5_8|g$H$jbDByrwKr1eIU}fLzRP*m4T;u=> z0Y5lyadK!kHuOCBG!f)mzgJgrdTb>i#E~FcW}HL>_DyT@_7=fklju={4&)Tf(M)~| z`=vI<1cxu?+7bc_3)wF}PZMscn8)q3Isa;HVUdurF;nnBUh}T`h^;uT`3Q*(wF@@h zu9Mtl81p|+4>OuV%Qfv>ts2z#@88d*fV4=jdxjBshD)*ZK;#CVVJqg3IRx(uKo2;8 z;n+o&nwGY>E4Yv(9LaBl3%F@%=N1S!EejAb&vOHa;ZMj6O-2-bFREH&LM$*+E?cg{ z<>gWzBAcjDZgDBP{{t%#;zU-Y-o{xDk$>^x<+yJ`0`<#unQw#E)4$HsRe*XxKqxn0 z{$2L3vA%{v&S-Ud>_qRjyBUt}iW znQ5?T-0i-m{}e2Ol*e`HK{)+wx;uBojW{l|z}nhNlL~ae8Xk_#Hg)|fYee-8&rd!7Mue_gYnpUcQ34NC$9 z!A|k~mw&P&jr@W;m4=G}B`hp#ZW_2*y~AIs*kIbtWq3_ghzDe0*P7aq>mToL*nQ2~0o?`x zptw6!-F`m`O))Iyg{*Nmmjg^wA^eJPGob*CJx3+K!Se*oc3_~^)dlX^zi2`Jo@z5m zA!ud>1LNRj3s6|30L-ZmAYP>7)91zdji)YkR^ z9Fqz=IyzbwfJ4`p)}AK@TE?PLMEi&=EiG+MY6}k?+H2gye%RIZS8un_2k*%VI&IRQ zP79tQ0i!!Cg|gs-O9^3-bFi@yiNyBmF3=H-<#*}7mp6yP!pbTJ#(yQ5%!42h3tU0I zH4g_YFV(P}-bz^=|Mq1n5W)4Pm+@C5nTy8z4;Bmn8wckDO+qmv0PUYu>FKEE!zCR0 zSy@k5$L{-oJS+rxBD!?XHFIt7F!PW{G&?H;E8F4vr}#ms!f7M zafp7v4K4!xrhq=wDZ9oxy?e&F-Udzgg!DPz_mR9d<5D+o2Ju2azYx}H&F?R7IAuCp zTcvWOJAVD@JVA}muURZdLjGOMXp^We|7kKTxAR{UhGv!?BM zyy1ji=i^@fU|{fY0T(Lc`}&)AHAdU+sU-Ey9#!YBrLY3UF&>VrZP_cZ9zZw3X` z($jei42;a&+^1jtUOm=@Ub6)~L^7BF`~#gzPbJUb7aSUoWXez6BwQJ&v~l|v^O!Np zDJ!S@&(zv&k&MarISN?Y%qQxco&E`4pry!gElpo?KWNoi2Q4e=gvxD$XgK7l;2E2F z8FQk&VNVEX2O9eXPit&4;n!#mv?#gfWhA(f!;5<#0h)K=C>eE)5KST%;A(`}`N5QDO061q2_?SdmJD!RVC-Fv9cw0kWIZQBwI?K5{stmAv8 z%%<={`kUKfPr?&_ngWyGefAeYz_~`qBlluI^fiE#wwC{L<`jbLv<3KzEI-VnoPFUK ze=d=_2Jl7FmtR|e4&qgF+)e4D831iwZc3qwCn%ccYE+T9*st}+y@Xd^f7qJ-&5O>X zXs1M(H-A5C@-AYP{YnFnEBSjYn9@H721q#+(sf7QZCobOK)h{12xLcb9)h3ix91#| zCd3i{6E)itfbLruiG08nUddIP%QCQ|z7LQ|_$n2^PsHf}`2ElJ(IRk3wcRCSgiU%P zLHO+#2Jtau?^P^gb3<^><82{?2zd3cyF7tZ_R@HJq=8D*=)2xfqD%lmJo9hkv^#v@ zN6tU2*x+#S!$LLS)s`9JC|-Q|GYeqqpXMf7c=lw-=r0B{R7A(+X&CpWq;R-4VecOt zEdFtvn7shwt`VSh`&V&<(ZI8UTug(0ueGs6()m`y2X9D(A5?TRfz4+t>T!Xh2*D$IghjEH1Yw(L)N8g8vON zbNC%vZf;T~C8hQCij9okhG!w5R*4GYD%Qn%--}vND<<%Uxfuq#%33&kqh=L42PCkl z2`E1^rG@ALdnn1zoEslnByZHX>Td50Xmfqblc#iJ%O19SVpoOUi;Rk70SkXb3VZ*@ z8Ni{psm4z{4s*FO)3xI@aA5V_`}hC0c?)Y>5Cm0yTVNHg^x^xqx9ufAp2KS^JbQwdGIjbb zbA|s}U*5=ltMcBODYpv;kcKQNB~_$%;%qhok#-nMN=mvRXiX>9>H)7}oqG}~cob0b z`qplSNvkWah0k96D@RQM91&|OY=am2+R97_PTw8qX{%DfU1u{7<_f3SmmS41c{`Qd6m7v?t)a(BD;!vkH4~seCcgy z#i~FpUwPoTDl04+rJwvXE5I6LSo?9$b^)~JcyYem}Gr>d;#xhK84q*O_d9pYHM8VR4AyZ z0^Z$85GuFWw7h)@szFf^{QyVexb4yYof@>YlbdPwyjq9xQtmcVeev9L$7zphk}|Pj zjikTJmn_$Zig6hf5`sNk1x%hiF_7gZ@8UL$(2TecuSsk~-ZJy%4>PZbNZlvGew~|? z4BgTFjdrU~)u`v1YefT8NV!_gu+@Q>Qb0_QU;g$iuD61Ii$-u-%{|5Y&F>=Z8JUC2;>ONG#hyVtG-y zfSVo<7LXulJR6!G!9w3(z{wJo4ZA%*a4qX;c~vUnt`~tL)lalVDR1j=goBMT4gfXQkBNEE^|YK}tD2$bXJ`1}7CNrhnEz+RJ@F#J89J zt5HB=&S1|rk$E!fvc9uKawWel?@rNgf*14UT)U$#UB)gAi07X;e3Mf{I5SxLX1ODn zI454-nhwLMP!@6G;*+I(vK}KS{M*Jd=`GaiM$KFDLI#z~*lREY05%b98XpLCs0QM6 z|Nnw0T!}infq`bRLQ@Q)TJO?WmpYXbv+F>9Wozdn(@g-Ku4h87Ik|`FwmZS-{`!I6 zc&>rff=f#XJZ}V1I59EtU}W%TVE@PZ$}us%qu=b6ry?BW1R4}`~A`Y?~AyK$UAPqFp`QF3HXV*H}KLc5Oz}x3PCpt+U~C=+Y4QkZyxI@Wcd8u?ZqB605h|_)YrELpp2r*h~Zqk7tO4@3WCF;&;$e22r*}(}biXY^ zg3cTVwo5pSaWWdw#JRo9d?cE!79^9yZ$K5|d22Sbxfv~ccPv!VA0laT1ln~YKj-bX z3)OroF^RW5lRdlZT6wlwh}6ur-<{*X&IiFd%{l#)j8Z3L7qgCP*+P7oPxq4ymOHTZ z=ht=(blToyV`F{^(6GUux3*blx4bH=^dv z@iQ?!>&f9S&ER@OmdPzVAgAuSy#;|!iH@6+fu^t;TtEC7dDwUc! zj~Q$6vMG$kFG=2I#KXekbk9Y!;Tp_jQW{$s*Wh(jNdQ!EEKZ~L2C#J{N_U<|CgKQ@ z-gq6u^U)Ksh|4uK#efStK_#5V`;e1lZn?e_Va4qgtcptBmD2Tw z^NoU9qx3S?fK0P~KH(?QmO2wiA2DPFlKg*ZEokTQGmotiN@J4+Qsdl-hJlL*$h zl60}Rt&{n$2Qhyj^R^LFZWomVtr};g<(N}&?XhtVn9DODCtRB+<_hW$5D}cWDmrcx z(o(7{&_B2hF{ka&m%rlHf#h`LFYy2G&k4A+yxorSTga=xm1|AgRK z7B$fSlC*&mE@ZEBJ+k>D92@x8$lva!Lmj4HIJz;h_}=5$3Qek@7aKg@+Xo+&@v5Iq{8oYX zH5i4gUT4pBZ45rdyYu@47k<^d`;g5N-mP#V>m45bTvWo?$G}(`B z?Q5}Sh|iV4V+=jB%TDE<4lWm)^D5C_3@rIF_2xh{hWJxi$32mDnH17#?%tI&jUy%^dUe|VD~20y$w1O( zzP)i}sJL|4&fVQzp-6fhC~T-&bojo78mmH4Tu$AiXCixx&}Ap8aomm`@e=$=e}P)u zw+wuC=kW$ejEKmL9Tb+t#u5dW@Uo2oKhP@cnGqbHn%qWI_i!Ua@IAv$=nd3mEZ5y} z(qGT+g?4{h9}D{Ub;J5TVK19J@erXHaUt*P7hH>_-rEpX5uE!*%QRYXSV%h%*bkOj z?K^cI^D1bwi%PRB2^EI@afCT8Kte_}hby%Eb z;~j-wq#Y=E}Axj0u^n(MOS-a{ok^ zrB?ug+Ag0lf%Z=0b}vt7B+In5GGeQaYUuE`y0$hN_cQmCj8}4x77OT7MDAbOtLR(j zkYKmbIvf(LS_F_FynNB*x0Ex207!&@BlJwjq^m}DMZ9yQqjh5Vtn4+ltrSOQR?G=$ zEtBxk9mf5}Dn@EPR595mr0`9pBfZ4&YtnnaEMK*6v%Qk^4tEJ=;8&2NJKOjojJj&@ z;(^jw z!X^$|*V%PIe!I?lqa}Ow^!`}g5eY3@yU<3+*{9@pI*CoPsJph4wadH6z;z%1bzi5d zm`xoid03$^0oO)27~M~|6VOdLgTSU+c1-fP^=p;6Ax4FC ztILFQ=&uU-9Jdjld+?YAWrEjVKt}u#L;)sI@FdWq2kVE2 zHLP+7-R(rpaZSoTmn@y$LcVl4{*Hk7spZ+HZ2P!DqH#nWRn(;&+7_BO<7j127Vex{ zE|y)V57<-t&a6S|*fSCy+IMx_$m)b+%Cs7%NoNG92&yfE_5!gy)Ch9V3W==>My0uZ z<3zvP&$uyA#_Le`9A@3@BYbfCGW$hBzR$^71WG=dJZxhvCTX=NN3<606aez?zdK6@ z|B^c-K{R8xrtd#-<3gh{k{vWq*!!^HLOJf+-yzemQ?8u+wH4gT^O|kdrc;zgT~mP5fsR_{52A}J|ZXx~P@GF~aQrw2NG*xB3!VD6I$ zmq9|Tx{#M`$Cl2sAS$#yOSZAo<~naM&CZ!z{mhnNb6oS&CK^?^ZrpD}1xwo5r7v52 z4u~HRv&NP2zlMcmbGc8G7ixHId&P91c%^=R`wrWJ7m8M)qkiV}jKw(`c{V5Q*)eUF zlFB!TxZq0Wo> z31<%}ykrOD`OA=^;sdmere>$(tyg^CpYUbx}f8B6J+ zN@`X$=HMA?tNhpeJS4k7%Xa9AI!QKc)dY!w%IiF}qL7{h7wf`Fz_n7c196Anz0vfQ zN6nDYS``e>WrCGK*91m2uP6*zBq9IY+O;I8|K+HhC3EFAOWLT}nDBt@?SP|pp%aTe znRKyrJ{JlL(QdU-RAX-nF)mjXyq;rvI(H3|%nYe=OXAd=Yal{{QqdTki65rv1k;=- zU<__CRCEN-TBeq1^;PHCnT4k^c|<=>{%WKXLm7;A0rnq}GTyt_kWI{7c(!!{2{Hda zMH?$(ggsN0Qh`O-Vnl5E?UR0&`S2K@ptD$pZ-=)P?LN-DUN1-N3o%M`Bc<6}9%7%7 zGKU~{^vf6!#JOwVEnVaeslD@R={?YJf9wX@*{y^XQ1l$eirywz<~^R#TI z%zDeAFJeNDRT?q!(&*5Ex{z`z{hgE&#Z&95sAD8Vc2Lpgdu;EQ_3=ES)s%tCDSevc zj(_iCTh!PVUef+K@i4dCc~$&}s}Yw8qF3zB{k%88(XZ7n#mCWp%P=?T>05wh7gR2m z9~L5yP*t=yaW% z-T9d`y@EH$YbW0SJZULs4}F$leKXYzqmbDIWss6V!ct;uXIlf&hIrJaA9K{)YH65u zlrvSV=7~wKE2x&W#5ThdI9*x9%KMI;pFxck(8C8m?wgakKpj7Oh8%h9uh z+NbZZ?7-Y+gH@kZxd_k~6EW?>xRFgKZ#R0HCzIL ztSpIluX&#ybKa1gwKPF+tLf|90!63pIE~$#iA@ic`|HT5E-LKgbXLdv*7U9r zY&aL9uUYy=Ak*faXCPj}_>wN%IBKd0rN6|II7Ay|bK7y%Q6cTI>W~nJW~@mP?oUV( zI+oSvt?dqwWx`28;6A&CcNm17p!||~XF5IAYiDJ}Y-POWCYbMZKi+wXiErHlyK3## zGt*s*lt~4Ch0Vi^B{(c6K0SyGrjuiRVe=+>!2SeMQy*wEn727{3dRfB?epJqbdN3+Ka*<@nZt z%*}Vgs`B=lp+^jso79BxVntNu%D9h0+1O_rsoHiBW44gvTc-#{9ipk>VD^B*O_pwc zJ?NOiCnWT)w3&Yi2z-o8Mbd&WjrOr6HR8;h*&4Osj^!n_?p&l25s8{OL>by9q5CgC zeNqZK{fN!Cr<3Q2zd0T>x7qK-85&V9_Z_hCYR_4Cp5Y{LZlH-ICcunSdBZ?fskVv`@CMVEAT?)r%W^if7iwej&Jmc* z;Vro=X_c*PmuKmsCOwvjWZ5%*E6|*@HPS$MIu9j7!KL8wh;ZN1&AfvrZVSl5{MVPa|^a~fXo zdtRLEwF^cdzdYES-QOLt+?b|5yRnqzte0dXNPOQ}YT_~X5f!`a$!NKh_Xnpa=#dlD zj<}{=uKO^$qVFioB&m2>?>r(+WI|kATy#7MbgvgbJCt*gvmExx=69d%QvsZRZGu90 zHwIB6G!EGhUFuZTFgVyP=Q%ery#Su-uEULNO)I$?vA1YTW``ETKIGr}9(-Q@M0lqp zu?EmuK?8|6Xlm%erO(LM;c8}Y`LWBQCY9H&A6kMrG>p&qg{?H&l3z+2ZKk|d1~pj0 zwO@(QamQISy7@>lmQST=SHZhy=&`Z(2NIsbJhsqgIFT0caK;Ltr%RK8?Ul|UT zNWB;G_QH_DpR)TX>tuL@uQIOyO6t#Y{o^=oa|S&62nutUhI<#*&VHbMkkXwPX$re3#>Rbvzu~jsgB*8i z$7}F-4WJc&`r4ixpv@V+xK+{oW1nmKjtu)BX2KFaKvoefW_OihwC`GbFUc@lst>4f z-6(C#8K%$N7^=i=v~j27co*wIc!$e-c&;s`G)`6bwA-qLTkL-H1`#u_` zi2^gR+U*cLqo~_&Wc$UjlQ$9c7|D)HHFhaRz5OwXetJ=KQ?^TK|ta(4~kA>Z1P zy%rC3GER*XBmBL?iR8Q+@MttD?BI>XC9IKD;=C zkfjc|qx5TipI#7mblr^uD z>QWio6Sq6z>9#R+t`z^aw<`jn`55bmS+I#;S^ zZ{WSlX4>VkLH_V&88z`PqlyA^w(#%vAJ0*iv`#*nG)~xUy5GWEYB4#Pf=DE;8BO=! zQqpq%w!rM(tHiSx>S{NRd|uCn3L}G-O}c048vM7%223*kv}{V+I9#~f*XbU;sV8%`bmsU)>3>C+N zms0r`yqhut(2NB&TM>Mo`O1_v=WwN)6z)!hI8pf665c1#G_%r8vC-%6hdiIo zg*0WuzM9X3u@bx9^{`xg#hCZ5S#&YuG|@KA{_EUYw!v_we9AhkYR%-NS4qKvD>Ih- zBft}N;534bt%S4cb`4O?m5IJdt+=~_rtjf*8m~VlbRuuObo%9aUO0n~(l>{f2<%U( z?%{0rbDP%f*oM%vj;mu6jUA_DP1e@*wz~|o%N49}A#-`=@o7je;Z87P3fHH%c^hIU?eS=7~NJ>v&aUi!3QJgzjZ}IPkWS_1%!WrD(g~r){qbKiPgtUMp11kJT%{)SOvaVi3s94)Y_~o|M&xc`Ii)AgJt;BBeyhu_ z$c=CzV1;a+e<>ZYeQ|?u0{b{1yklYgr8S1*Tb=DDBQLSs#K=)SX2|Llw6TFM6?IGP zWDqc~gb0nr2Rmo#1^JLSp<<_+%g&E=+Q=gn3xeCM)N!2E)uSI453>O#hBJ2ox10*n z5A&g~qQ3im)k}clx*2%-GFHHq+_Lt-um;U)o7lul9aL~{tykE-h%S(5#${$8esw01 zo}uI_zDX~kf+P?d6#fZg6Zts~YlcZnUzN$%;M<-D5ntOG4!W{3UM-1dzIbw-UB=C$ zELKp<|D_6tF1=s2*ku8K<%v*RXYf}&BwUzaB5wjbQf$|^=_=Rx!%}9{RRdOii{NdU zW@3IowWj(wYuIOgVwHE#diMl>b3>ZPUz`~YVOiFXkJf$h`Pme1>Du{Dp}-*ocq%=B zMyH^fs1(`C%j18*rTpAX?Or`@zKqjb^*K{#Fci`y6!UgWEruKJA|{>gY_hchk~H~Z9vwl6d>V8c--A`m$$JB3rfgVr zxpC;SOh$~Jz2EJa!B7*&m@_|^&ROB5P+H~vwxBm{ay%zwb8Zu5?iK3HJ<+Lo$?(R; zrtManvt&+1W+vlP*-zF}%=2mR_^yx|p*+|2;Jenz?D+jfFU9?n<0bz{VI{>ghs@^) zEMF2>rr&+gu5?jW_f_ZG=DS%HPc9*YvItDxw@S$fR;~JkvtuJLPDV3Ft!_jBe67;< zS+^A1Z*Zdn6vTt<_A9Cl4GocJ8+9Y?akIs5$VL+(T1FK)wYSrkOqn%f5Apqj4Pm|` z2<~BD$Rb)4*p>A2#k^Gtc>Csa+*a5mJ@TWQ%fqUSmq~6J1U^klSGvjk+A0F>pcp%E z{B7M17eqAq*Sh^B;M0Z4*Cj+KC&+5CNaCq^emBEC6h$)(Q!s2!DrZDBt2c)~Zp&YG zWxDPINy*oAk7#i%J3?-h#U<4*U%m_z&8Od9ci?r4^K@2LCc(s-V z*(H=h63T9%Y+2cr>{<3WI2uYxg=DYnIQBkhk?g$>viEjuzw6eb&-d~Bw@0^g->-3v z=k>gv7rk0T681!zW#L+Uwba70qvHv?%Q%$@r!&2(%wHtGCnXg+N%O7>KcH^1%XYn@ zO4&?xbhl&_tC*bMPqvB1R_*?Gk9ipx3CUL_(KQ06`SFC`yzUQNw@+<|yiDJyD-!iE z5!;a9oDO_3pE63_WTs##WuEVKbeuQu=ukxh?|OoSlAe&Mb36sEqM{-)|4nf0oinFT ze*|Hq=der7&PxzcHF2#&5S33KAK?PxJnhn`h$sH`?+2$$it<@m0%MbHDs7g`$hG6#Q!^#9#mc(O)i7NI1jDb!xtlR?1P+7A;19;Ux;=-HT1-`_mI z?N9P1{}TJDoPm&G66}YdSGWDVgFH-*QH1~85VJGC`aP~YOX;qDyUKXX3)rE|=gyHQ z>eKy1cryLmC$8!>HLe>UdzydE!$xHW|7PBShPCV7M6r~tdK<2Ss{7DUdHitQZZ`R_ z#=UQX&)p%E@L@vl>4UX4&1KLg;KWvN+D>Kn@{ z2)I(YEV6!{SQ%2qsN~pJrVq0zcBMUEo1NHB#O8#lA{WnR2UfzG#4pDqj~*L z`a)02T-qq#?Vr5R5A3(+15zT{7yTmIsBZ9DyXnwu==j~%rhgDmG|W|gQ8jT-3O0_$ zEl~J7L3PIImx&3^kRH2EKV%f+a0Ab)QG(0Q5)w~fYod)$dO3OH#*KGeb0Gbbb~WjS z8gmQBYXVc{p2_R7-D7F-_`cCp(o=!6M1<$LKCVj{V8;Z<4ye5DQWQ8&+H}0W_wldg zJ%My}0e!o6r67JI>6aG>c|k|D_3=cVjmU28LDuqpV>hf#+j>J}S3WgiP+9EREF=@8pG(b0w_NHcv`CnEB0s}2KLb_l zC=5ja?E@hqwlu}dO&H*)vunQ+ajJ}VSde$S_sSx`-kS~R|GD{M-U$+2d&%SO^^E9N z%vTQpVn8fT!qB3$H#3pHHsfO+Z$G(4#N;F1Q9y|_3fE>UxJ5=*o$lh=^QL7(TkAN$r$2lE=HQ4h^> zr=4;eR%~3#!(np*oJ;1wN@`sdTi+d?X?E$Q+j7jLM}gg#S6Pg|rlj%YR;M9C>{g&; z-DKq0eY4}lt)H!j%uEZ&q_&_e2OWO z+#A>YLB?=^Zp!3~{ZVPigXO|SlB5nJAi1BQx3T$1cAL z-F=P$>(L)i$reBV;l}##J8Cy(H|?ExqkhZ}RR!njim6zKkCuw8vN&%M*F~3DA%4V) zke-gn58&{>tWkq>Hg2vu;Xes2ONyL5EAtz0Y0Yux6MPdq%B^$eKz9AETdF8qIq=3@^L=b`-^+-H4)tQ%(u=H}ucJC-? zE;l`S1;9aR#N~&RxoHK@<*Q;O&|GWfro`;0A3;xv<)I7*$AK zQKlDzbyGDtResTjUNBa+-a_Deuw_w#w}#>Og8qU`_W0pC>OG>XZp2Rbfax_n zwdy8!`}aJXcFOv~O>yO{sY<3U)nOsht-?Ce`I&aX87@_W_Si3#5-r;ZRrj(21Yn#l7q0~atLn*6UFbRG zASc(xdOJUH$Eet#0_vJI3LwZn7-jT{?mQgE2Cuuc)eXlX+aux|G~fPJzL+cawdD0H4cWlW51k(|U!>x=vX%#SOO}g0s0N(lV}F?I%1FmFP^&D@6ewK| zMXx|vA+u;C5tA=PFJMywS|*t-p?3YF`X(orzNg@sH)D#Kro%BM&QluyNu8m8DegU~ zv-V{wQ)Hycyd#6Pt9Oz~9@IBdCDHU9Ii{$(=g*&4#lSLq&T+9V%ID~w0G~HCY+(er$R4Mhe_I9#2-?WE!2-uoQoN-2<ZXI?Rh*jjN(>~Ke)|Ex8$Q^6wC;8 z*0((r=SqedpUxidQ)tTKU*kLbWUAe*grjW3q$TM@LA1jLmx71`UEKrab55Xv!Q*UFCe4us3a5b6KPipA6L4fqj1Q`}a#2SCT2v ztY1{#JQkh9<#x)u0IL-Y;EKCk&wN6|tvBzUg2Iya^1C!WZeY&GbKd)z4)r(@s_7lB zby_`~JK!cN_iXHRWBy(H-Ci*ZX^JG7Wk@9iy#fGZq>fD0kymlocnL1YJM`R9mcZ?+ zG2SF7_WKH%D$SEm^#+rLGr=v7vcwaFKC;t`9&DNrjFd3h=zY)3!KdS?35#;Xs1V_Z zqE=4JF^EQXmi{!XQkHqq1ax%DCjzSzeaim^=D8r!aPVLo) zCe+qH)r+)lMHp?=^kks&u993Z_wLZ2zb~oysYX2*w@Yj9D2Z5lKRZ9+VsrekFgf6O zkq)IwND&<;Y4>@qmBArIl=P~jZ3da~q3PFoU7k@<;Y7pi7pH2~O==!mT(}=VF!d8K ziWngTg`?5~z%QAC{$n{-Nl86u?|s=FrL?suyY?h@h(}!PZ6RI?*H!PgM0pPaE6uwzPBDFU;54Xp~ob_1K@V_z_jm3;9j zjJ4I~q)_Jp{rBGzJN8AKbISYp-{B{tFS`_2Fr$m-b)#SKVO)3d5_~-G7foj3@?Q6( zq;h7xcRwO$r*;@AJHo6BtKPLeUHbTu7HaFkYH=f@_}@L75$-o49NuQecg>y_l4rCn zcWg?U^1fE5R|8pRz_UkF_R#U*N=>JUdSCQ`zbN%%JgIR~)mMx7H+3FKiMQhui4yf^ z9|h6u@2|Lh>P*x3Mlo9nM$vd0r>3&b;o~_sc`<4PdB$#Z;&rMyuaKg3h!)bWI@bK* zYc;)~jauUWw5vvxBomHK;XSA~Uo?w8_lPW6)Klql65*?oR_pW#-&~LokCG)D&)ugN zVPT1v3yPtQq0+)yNJ}Ir@;85z7E!#MJ7U}6^@|21y??x;fZ9|wSwazn+5&VyI0PD9 zt+6+zuySw($qUx(_)vK>BR6gO&(UcPR6O8ZF+ zOL2>%D3R)2LC%u#PtA;6kCK6kfV2zux$EoeZ2|;A>i3+p9NqSg?Nhbn=%_qVbW8dA zG%joKrM4z*I+>@s|T)Yxc`&rW@Ui}GV}+XtOMawt1|YH zFh8WM@R5TJ!0f-nHH8R8!g>$BDK)pNV`q%(b=OmEtj!ynUuL8ejWmVkpP0&-k`B;z zE4ySVcu5Hw?jJBa{FIfeoh9tZwm|gFfIu!=-rdc}trT~=vNi25S3QVDfw_SXra3ER zx*p%l5Kw(_pyvVao!;DyK`G_#h8c-~E`w)zxKe1Xp9-7v+KP31sL(*%W}b=m0X>YE z)qDRaFab^=h8{ei+-=P@tE2nmRk$qL*&u(8XzZr14kg_wvJs+414F6ZXG0o}sBt+^CG1AzQLDo!_JKNbdhczB#c8JvYF zOa{O6Q-zX5LiSrV>!$2iT!pE_bSvn_R7||s_Q@RfRg<)73Mx>OSOjU4L-oPd)IegC z^y%2*>brm5Pq#UntNJ_)ntTQE_xsAg-J?*b-wm;lHgH4)eH_}*7uLXToGn}gH=q@J z&+dJ{#jCn5$%>Nuo7ZeFuD;j&(af!o^XLTrGNcgzU2|=310HI}8j^h}V`Ewiv--`^ z79-F+5Kl1pU^DXwLB+;PcQTzPk-3Lb@!xHYM=j=UuHN{BQCRvSea=a+^z)=%*~>ds zLA(k)*gt%Gqha%$)!N9bw}3h8_5AsL5Zb(8+JmW=QL}v;S zq3K?4v9!7D1S-KZeVcO^TxaT~57mc`Jeku#?i57u^CO&2YnKwVyB{U4uG}C$`#KfN znjqd1tLtn?f53H`)^mS-Q%M@kvi@%{uiH-)02;?i=B z8|lN3?l7&iCwt+8N(qgvY59ZVpP1nfLS2`cJ*uq9Vnv5&45i?1L+cSCYq@CQPlg|Y zPFWHjMR_s}J=C7oT^3oRUf*xAXL*sQJ70N$234pqyCi)o2u}yJpb77(lp$*%dpvsd z=r$1V+ntcMPsWYuef@)jSA@Ut$E2S(u46K;jkr9$xCpxKU7j@}tCjOr87x-x)%mxPKA- zY-oMrP|U#L)Eot82mAfC!kvmDe5B$BUH41UpOdRvs?Rppoa^G0OiD&Z7C!;)&9RzgL7=DF+&ED5GY>W( zgiglNd|p#UW#xM!u|7Uzh_}4kc=C591d?;7A_y1PsBzbNeTyH}Op;7@95$FSy#RjS@XXcCG<>zD3hCwqj1Cs$y;n6u;i zP*42pu4#dENu7?{rwU0Q9%xq?bBG>UA7oGtl#0F8G0#bm$Ic@~ZZSV62}C?aZmSF5 zp+EHdx7CwIIh!+O9WafrubpOEx2aLvd&NS^#Ojj2jBJnW0Ep3Os9gd|N+V3mozPCM z5z~(DaYODGScRN}&}*Q|%FMXOwtD#rGWMwgd*3xFdVxY)QcpqARxNtYPkN5R`Z5jYFbF8ng2}1ie!bcX(on#i->Uh@e`@0LvkFB z#xpATv-C65*S&eJHjgK_T>mZDEp`g#RCxYSkCBCc5hFj?A5vNOoQt#GFnrQBD@qa* zHYkuL6O%1(>+gH{_nf3FvM{fsvHH{m@-H6B5xKdyOj|zGCDHQbYrt#;TK&p*DX#0Q z1>ej6Xvasg!%HO^zO_SM^YY15=qgXv%GRRh)S7MSH-dIy)MFdHP42& z*kt6r-1pN7+Q}TOoM;Bkpz*{u`rUhtG$fvYFz^IB+n)(`j~?zqJ6#OXZ%2md5WN$F zfKf*)SHTjy{5HwJydz5~Hm^&gMhB}kaPPMoJlYCoaFNAj$ZEpODfBLK2kW_DjWm}) zDQPKe)-xX;dxHmzA`c$ryx8+wK%Pkp24;L-sBEx+e<`U!l8E{>>cJ5}uGzV`)NJNs z+&m_^@mIoyY`ruxje3V@?qB@#>^XRL_gtaE8Tc2bdqlIdvzZT;51?+dzDNoau$}x+ zSvD9CvI|Ym)&EGqe?lgujdv67Le{c~GBrmdBS$MEM`!N+`~H(8sOifF)_C{nKeN}g zj*CUO?jcr3eiFnH$Gdan=c>#mL1y*AgxR-;S9yU)Juo!1eQ$_eVCcw({~qbBGeL6X zTUAw4I*W9cbs1?(Siap@Y?}cezSlhKGtA^@3MFHa`^Kpk1#;{S952?m#mx=#uGMK+lG@ z9Rnr>L748L7dPHR!x$dFl6x?9&yDbDoD11S86KJGd00ERXE+-H!xu5j|BC zid%mL`;D~V6E9dQ6aUr%7O@T)1p*y?h%{#KSkH$+%NC@!k!H>1buj1W! zeWxMpXap(RI5ym2nQ#$p(e)8|ean4~`Mg&-Y4PSCad2Nk_K-3PykF+3w06}>p0t`m z;Z0^66QtziQgkZMBU`;StU`?W;1Y`h*Xh%W`uZ_IZS6}gqEB~Sn!aO+%Rp31+RA_n zFn*x1CR`K)lszZaxxGU`2*Bx2JwLnkCmPjDT&p>C^JO|j)@rlNGNwzg^uJY|61-#&YFtxK@Wi|>ro#G{f81JMv2hLodbxvY-e{YJ9$PB&vg$6q z?v-||-i!NJ_lyTTi5aY>0UZk)yMg82OlK$isxY3o(wh1w3>_K5Q+hs+roy-vLz4|_ z{&PO*f`5@VWhU%g+REHpVE6)M=sa0z+&xjaAHUXg%Z5?yQ*~p}{XPlkKD*cw+wts& zMe({Fs5KeGkRO2u{nx#Dk(R%V2@uT=jSN&bV7)7NHbeY56|Y6v^R0uRyTA3dnnCem}CNBB2KG4l@@H)^>quc-0f-T!BvM~@Ui@qB#8!*=y{H@GMxAer}C zX`kTOD%_CJjtw(hVO!v-l$C4ZpvIGuZ#UX_gSl$Lor+UySjcRuhEiUrSHttrma$pb zBhtS3I`FK;h|1?qNpFT^?!HoXPR_{{+PMRNj;MP#(Hd2JhdRz}V=i0}`-7XC8^`r1 zTWu}SFf1?eDn(^3#K= z0Xz&SW!FDU(?sCira}~u(O(fbLP=54(L>gvPV@1mjJv1k;*AYbUcsoi{O#tQC=BdwPbj6y zBe=Y9^A$auhsvr}fn;#KURqZ#AuLDSR^^lR47Hbo}_` zK89l$&nIN~BQt+oA`|&Z7>{-NK~y{|Y=Kpbn4Mkr;O6okFn75+`S_yM3yz~lSlHNh z_(UR4crmLGHWOr4w!D-BaDnw+dUh3A$-Y4=gIg>gv5`~B}iT4-ppZCx^qraR#!uT;O9<3o8g`v zPplzNxRDyeRN+SvVmEF)Yfe^AA{lEb&}d1tJtG_X_PDdI&EY?1Q_Kj72L~NvRA3;? z7s3va&e(y9w_bw>)_MPFagC5rt$F!9@75!1av`-Ij&nBW zRwI&*qE_)rrSl_FH*VbD7C@2{%Yuil6~bg5fB^D(M11^pE{s+TKMbpGYTrAUah|7X zwHcT4;7_cvi!c%yJlsAM(0m-C!Gnc!iyd;WbQBbNl8v>rLP}rICc#h+=k0!om=S(r z`cex3Dnx|Wdte|^(B>y0l;iljBvpHyZ9uGnj8es04(-3OAOX=QNr<&vs(CrYky!9s zO-;-9fr^C<=cxjd22gC)7vYoavM6fX?gyCG;Lv}b3Te1YL~e8fEsH5i%u+YKhq-}& z|K-ayZ(32E&rd}APyg5odA0&*rb;A$Tq6;iqd*48x3#qeZ4OcU`TF(=wD#;{s0HO2 zKfjRv9h-=QP3%Q&7{k1~B?VBS&d|uVNf5ymb=mrXR|PvOX{=qpEvyC0mI{v)k|7p> zk@y4n9w0BNsH+FsPk}LMd7q$U0}#;;$1Mg{kZ|FQ_&3BSk&w4$nFhQq%De@>CIx$l zkz1>eO-3QZplau@vG$QUG{ z`6_4Law_TQgxPzyw%+olTS#SK;FYoqM6Af~I6xbgd5pbu1rFsRA*cv9z@fD5pS}|y zUc9j$sxuFf;Li6NJprL6HAgdSekv8T&ox#gsg5L9S?1HVXPd@VUJ4v-OA6S2@F4_* ziM1FXnhyB-*8PPGgTYSv3noYVsU12j46PWUE1svZOYAs8Os?H~7Js2!Z?nMZ(wSR@$@Iwwwt*Wus zwCMAU!O<4{-Q(L2jJuc~tQh~>ldG3^pCaMrsU>dGnVB28E6YLD*{&w6o^68je=zK2Q zHh##}3dNewV2t{nc(b43SZL;jp8tm8jrhHR`}_VRs_>_mU`}LL_YXQUxY1W`551(< z$ai>F9dfBJvF4j1*;sYKBn+Sn+POm;kl*10E|kGKxRZao6d1kd;NVzE(R#{C=L1tq z)cP2Yf4hhZ(0)={zWq8m@Jo+gmXJ2w$uMa`99|OW3xWdmTcC1ik+{IMnFkStyzgd% z9o-v?Dq}iXH<^#XViTSyfYVt*eTtK_8DeDf_NBz6bdc1mo0l|Ixw*3^&1SYcOjDuiFBghK+zk4^#F*iW?XSp7gP+4=$ z`&Yaj16BiW<;#~+lg4;O8vHkh9SKS#2Wa>qGX61bxnMHZ1zBNOrybcJ5eDI{rf4ohfStwDO(2{A_4DjX z-xJKtpYATL#I5Cg`eJuy@1Tr##R#ByL1;RBnK6#SmH+rKw}yX{KnOJvGhH zLaImu^HQGp(Dm+c!WW1HY=#xap0t(}X11F<0wpulJZaxllf40(e@09C>R7u?P1^oO z;lmKDizytW<7*+Ua=R1ul2LThq)hnXWSufkWfzV%^snt9#}V4a7lbZ!`3l*u&KyGH z{W=UgRuK(JBbfEq^n5*CCSsD>fYbvL`opO$l*#8PznZW2>~1-}4FlM5Tzb#kHni4- zk&oFHU5T!PDWd9wDd5X*nAAl*=D8CxF`q_B+F`RYZ_IY97>4PslS)KP+CLx#9K@R? z_5S+aWC%tUn@z*+i5juV1jX;Ge8l)Om;9M7CLV-B!VT!rX@v6>DrsYr8Rqa~zo9?m zffun8VPai6!4^sjblS?GYYR z55<3$gPb(NPMM%1+f?XiEuV%AffN$j14(!jPmNGt`N~3|SQn;~?hpYH&52i_lN0ki zz^J7H?aXX2z^u!LbFC`AOBQ_jdpM*e#nyr~>{y0nnhboHo_K-!4sTGOV)(_ouBf6rz9f#0xs7S{0HXO3HY)J{-X?-HWr7*A? zzOiE>KS2m;gc@^FZ*@8{%bTJQ9O9kxt;LC!mYuFnffB;oEFLLma^kyasHVtsVQwWr zk;Oq1`Zc4u^~y{tbJK9=f2QPH-$G8T4~|9(()6}T<303KOE3Su#|#~NX>M&8Y-qPdqzb_ody-`7g@q~zu8cYZt_66W-t zZIB=$RM-v!Xchnr;O%@5?$v)g?$s`|74juHJaWzyMt9NBDa#R5ELP^jXy4S2Tb*j? zKds~!67rAN%0(i{j$?6H;tQ`4ixRpT>6U38oV3^2*f=Qgk|t26cEC1b+t9eRQ>m_9 z0?E1sav)8Ei)LkEF|PM3&v%=?y~8LHGci%b&v8Or6uy6a-3CKd9ggYj)N0{opyQLF zWR>;9vTnP|5DHlk5ZdPKy9D7K5drNxF7?7&FjVisMDouBR}vUSRy&qz7a9X=Rh)hs zR-ES4ZO?4WTRA!qec4VV=qITLy?q^twkNgu=aD2hTNu7bA_Ah(7V^x*mD7+o-9*Ig5%h`FfYHW$CaVbL$BoMW7Z-z%;XOzm z-!lF=3GyI%Bo)NY&YECnR>o3z!Mj~J!=r??oY)SjA}%ot_7M|GX$p}yFB(P{OCquQ z+M0`{F(d*!Ur7`0v{bKIU1AVv#Lz9pUHqKDYG{U9K2x)H9c017Zk=J+nR zVpjRUC~Y5RDe`4-!KxR5Gbu zkkua(;0K9d;@C6=^M%RRGhTp2?>sXE-Edh}tKSMUlTQ=EK#TgQ#|IbM;+(Z@Cy>ay zIw%Ifnw_TD-F*tq49c>Sf}HpwG9nW2J8xRP+|g!$-eiNrB4Oa(j`W<#-F*`d^SWUb zjNB$h19WHH_9o^#k8i2tP1t3;Sbzsn_K zr`ad|3u}mBiTJSj<(&^Wq{05ENVX`8~f=?<^L=KAu>5VwT3L~YEM3)VNFO=dW`hK%;H3fErQzzW*D4K zmi{LoCjN_TxJ%zQZ>E6}(>nSwF}PXeY|dsT&|ENjwXNQPpnP6qJ_UtOQd{rt}| zc<90-OEt$ih!xR5G!Q!zz@Y{)XwGBqv^1yN!{o9R-xNNmv;HZOA=&CM;%ac0V#F_V zT8+1I4++dOdy*As+;y(uiIrDVcRY4EU;4>kkOL41sFE;f4EZ(_rHS3S6RD$*Rj~9<@>$AUjw-HFcLRx9I1C#Aa@w6;$Qea+Qj~iYnrdD zx<|xf&B5Ej;r+ksje_;A6)np==e~t`@0p_>mgeciI^~yj9z@MHo`$$jeBtifzd0EE z%pt@>_nd6_QbL(Z`6XGa=nA7*+mA#o0I+!lt+W4+Q~JmU_Gl@@RD*_zFqp3>kyl+k z{a0a0`1~CY7~VR%9k_tK`Go9^jJ#0QVsXg^YW0E}&LvdD_Pg!$aWc{-1h{zhY6toR z-lO+4EL+%6sOqZX7I2Y&@0p#;TH09r@5IoMr*o&nC3b)>LBj3YZ@;Tbj%Lb%>We1@ zFL(AEE7^hyyTkUf5^{79U`*!#6}gcRL5Fh@63kt)F3oE2l=P{G+Ks*?RstfuZKo^+ zcGH#P=y&q?II-$-I*wcCboVVz*iZDn)pRx;{Ge{~Kd~GF9YXoa|3p7Uyr+BUN8vGl zwfXj>U@gtK_wP@ESzDNBsrlz%lIH@xxw3HYlw`zP!l~lTBGo|WDBWDEj|Ji~GA|^2 zjzy>SmHlI-2#8FW0f?YwX};V;gMg@s2&D3@_j8Kc)b9jL*7P4IB^JR43y`IFm!2qb zKa_`z7Am;LCUS6zs_Zebu_mg6W((s@75~0n{Bt+}+L^cb$M^6RZ#+p)Pq#^nC^4mA zWVC#e>(c^LXbSaz7DfJ~#tVSHVlZ?akNuJ9h!-{=I|{h2fmY75TLn*-k@Kir+oU9HsDQodpq_POmZ{qRd`%>L4aw1atFMl>LQ%2V zAXyQR%N%b=d4euFzS%1}?f%b|5sTo4YeuW&i+cR11SgL->0Mj?UR7nAWjLI=kN3`x zYyXp%z}fVMvx$2bG=3(2kJ;@a7&|-Bp4QOxa&n}L*SVU`cDVNAzbiKV7y&Jm+YA-< z`@MZ@vYv12G|?oRUJ=$9r7w+mP{FCf2Bj}N+YldOrXFhuA;T%H-NmR{H|iucvhO8S zhYAiQ4#w9-BUQ!!jqSv&4uW$2RVV=71do$%GZLi^ww#4!AW;HPYon3+n3c7;8r!)l ze$&D{mN{AeE}JH&qEk=jzsj|-5u!P*etg-#zQ|u(7rrqqsrJeh5|o7u-Hj{0u`;aJ z$>x2puWz$Z@zL%iMF7tv-TC}v1d>!`IGSOo#kQoyyKH_N-p{B7f(wLEQ_kJKp~~$R zLzrtm`Ni)q$%zpkIeOH%>Wn%RR$0|h<6K4!j3{N)%Hj^B7h#TtE9x}=y1j+1iS{_3N_T;Lv#@@ zj`1|s%g{(}w;t$PYEa6DrZ&Hv$k(p}QugLx2b+{YV+AxT<9k1Qn!e22-3V;Nc_`&7 z7H=$I)*n1Oi*{Pb`1s)Z*5w@VI_gw2|6Wc0Z@Pu~AOGnd>Ne_BzIOnI+RPQ1?VcO8 zcLIWey-pHCVF#h}ME-<$__;eCbNTcu8$h7Z1%y)xKiL&}UUvghbod&J^Jsn@H*NJK zT}5zLIi#TPPb26W@;`YRAn=+I01#zaxYLhXU_|jJ1@l5=!;VjfJrMNt$I3MOMn!Wy zu2x$tbk?yPACg{Q^Tw(zdWumZ0rXhe<}5~Iw*D?0GAPK7bi2-2d(5*6aM4lywYF$6 za->{0p1KHXz~8IK!~FdRDu;1V;s*hF>NxhpVyrDro^fbWA>3v5nbL%;!FiJo+9^y& zMqM-m@f6i)?QH_V(_bD~`+PQMw6LBy1EN3~RlF?!19^)97%yNu`u;Vuq)G3m$JL(~ z{X}QJP?CNL6Lt>4Eh)y0h`+p#5xO#F~? zCp8rn61BiM_wa^QW5Zfn?z>-9-ts2rILzENbgq$rnQZlkC_lWuB9D}VlGLytsw@k8 zO+rX24fPEY@yXbKvcFwu1&V3Sh>ai5xkiC|vodL4oCIRMMliQRN>gSf^KJH2;qKpBxtc{t@{57M2W~ zOMO0Y=BgY)BSsRYtQ4>-6yuz-@oPW6J|FGK!B`g;0FeMp7yFT#8?D(R+e%Fpw|heE zP1@%VWtp|r|LaSL#R)*n%`SWL`**1<R&{yOq(Pk>n0-Vr`= z2?-|-b4v$D$2@*ZY7>o`#aR2vPIchNDnjqyJZN2vEDwdZ!0;8*DG{h{hTd7gd6=Gs z!6;hMeo>`|fe@73kb-l@Yh#N>c#l$3JLf$2@oBN*ar+ptI%)g;qM;6rVPs0_WO8|v z#IC;fQ@m#MFK7qVf|G&TqZ!gQYnhpf&ceHvGqth0c2 z-eO%*f~y4jgW*%Bg_6#_P1$ONPKn0Cg334%A>)<#k(IU@*H}=2XS2!~NJ~q@jkO4m zskmhmgkw3w`Zdw*{~7+wT_x z>)&sSzNpr&<+X+Jx*A}vtgD6nEpdf;ta5=Lpl`6|-{6D1nb7rM@!k7KZ44fC7dmE)pPl5}I?qF$xQFXV0U|qx0GCs=z#)F^+M|X2hn|#9wdYAo zQ*$-@w+w9+0vQ~yEe36?8E^UC5*CEoWcL;i8Wcm-*fhPnckfL-H&?oO^G%rJV4!ps zw;LuW4EtnRuzUF>4^QF5#3RF~ykr=Y7?{GmJPH*FBfxas;Pr`sFHY z8z70@_Z`E~u^3+7KdI){A0w16nF0<1g+la`11{-?J~)>?64Yk6YXqPjBcMJnV6&9U zgTAfF^X8M>;fp_dU(@h9WoC5N_N75J_D@_4rMd4Avqrkutv6%`J|)OQ&9JdpH5-A~y}v1aI$K(R-1`5me>`bDR3Ic}*T$Os45r zxqzCV>E=8g&XPaqSg+?06p%DdymyN(d#MQITVP3d z?61f4N>J>0TLoWuR#u?UP8JPw6^sE0u>qRc(84{Q-ENm%i=v{UE|@J@g$i4%P8BX> zZw!>lYg;=X*q(60c~0SiBnm~VlXnH_M?~Vz-!(@}H$Vh2pC0XSZu3Yi>2a$n{|1&&7J4l_b87^Qe^_+^c zaf{=c_7le~3p`uBK)BPJ?m|l-aN&{C+O`|_@24R^o*KWI4R4}Kl4|vO?Y={F!#j$u z$eY#X!YS|`JJ#sj0kk?*PR$eqyYIMTnaB6*=!}Vs;Erx1%x#@UBW1|=B?b;vhtjXF z#q(6IBl+Im`QkoO*{XN3|5K_)4(?C*kFN)>^-4EF<&4^Bmp$%&Q$h|v%k7Q(>2od`Y>^OO|B_iQX!%tq^PgG)K_ zIJa;FF75BX_iygDi(nJb&()TK@|SjtmFhtFQD(I4o=m(7wOIp$YE@{={@0ZQnkRvv zd7bM{%7R}|pP!H*bzlZ0whB7u_-3+r)Ab*)4BVS696sFqP>CUL>qR#F9}V1d$U ziqE{0uO)$k!L}Xnfz2U$3updzsERh1B1iRdmY|%Jm~$5>Ld9|0qSSMuV<0R zSG}|Bj-XMu0hiymxSV%q0#TR}2fSyvE;_~b|C8`TshJAU%<(zvu68I=n-0tlIBjC_ z+GFoyW7+3ueNGDtcl{f2h%sG+JMgeiD9S_#mN_#ti!zwI(I+n%^TmHY!Kuqd&t9r5m&3jeSFKM&FZW> zKbl~gV}bB=0Vr4DGWg4cK|G=u(^JUXcQ5t(|4OH;4%y~FIt_I~*)Tp8Q0AK5PUYIl z^PrYSG)mxfLKLWWBjUP=Ak>v-vSpc}z6+K5!T-6H>gM(EmG)N^KcD({e{SRQpM81OjeXEz$)v5?I#zflZx~|70;}h}sLHq)X?0|_*J=qM?f1uIeGx%dCZ z=S+|G$kaGqGk$hAeN(;)=OSLk$EDVo_Boax`?}psqEr$!llPgI!rlfMkODOA3!@;b%$xeFC?V)pq_e5uKh;_GHv@xJ27s9q(Nx(!xBJI0O-XE@}* zkB3r~V$x?mB*>{}k*b6bukLtAJQ!ABZdaU z>+ISg3qI^c_&X}B!4$4`vzLDT0%G6YHxYKqY)plp{YIhb6#fv+`*NkYcpxwRwTR>% zgenG$i-j3dF8X0V0z{MIDa&@Jzph&qRebK|tabl$>^t{$M&j@R(I>Fu17w%FlBB`qw-aL^(_x=WyEJMySJfn?er@ZT0=envxt6Fhy7r{^ z)EnCOEt8e6J)6Q@wS1-T=pTg5*Q#qPu$`H4Q<+(hRtbFd<(@Uk6@5KqLw?o{=PcC0 zd8(-vf5^ePRA?GdAEu<_-FPiI-*ffzU(*KXtx^HMWZ!anq^4MTK2GpqVq~4?V$w2Z z(-S*);Mx&wX2&DN!FIwl+_nz`y9(_MXT zsrF(vdoY{nBoyzQwLSja84HH9ylyjt0rut0M z#(x5rowAf#%^D7o557_esoIDGg!A&sVmAbHoW#N+y4o&R%j*& zV!x{ATJ?Ga@mo&%4Q}gzO4grxC}InY#QZVNzi|$5brabUGq*n}T&eN(!^kcx=c<)- z!^*SMp(+Ey%t`uN1Nx{7t-G!r2!B!$in!{@9&8c%%!T83rpujuhlB9W4o)&5- zhxt?9^!#%7@86eo8NDd=q2!RGd!PgOilC2O2GG>Oo}f&Lc_NHE40 zLVk@bi{xU+avKveLN7f2!^gU=$X2YdHmKqy7(|~gHOctwfag7%Y*@OA@%LPFf!Gl{k?D&!+c^!q-$PMA%~Z;mMm7|W?X z%j4|wwZKmB#ZhCi#|GtIO)B>O4s?`_QyN@t1Mk|Iy{$x*e&!Vqnv$#1(T#jpgZDf` zFd?xE&2)4dLY@d^WdtL)w#NWYkgsvC@AGqNu0+f3B4{1CnPbsaNKjxZ&Zz$>N)lVE zWxr86W@*$AtJV}_?`AvEtO5X40~!^uaX+mkGW??B6+1qBU|@!dmhyZ4?$!?@J}ZW| z9{N;s6o~&apb}J1+lsdw_H1RI1kQSTf^#zYD0`msqwkiZDT(he5-fXlrQ^B5F8lr= z`T1%FD>m}MlHg`#jp4xj7<)_I)eN_v zhlre*3Y{p$+cBFMCAxa(q9G2SWO^L*+?yFGH+-eDkozt#T!|s!n*obL=@ccq4rHhsC}}5 zd@7qu_|1qlFC)tLIn8<2hM{6800wDzEIy2_*y!HL(Ea^BI_P&-ovV^taccc}2S0W^ zl}K^ybjHMg(TdZ-#q7&5HNB^4=LyUiYMA%-#a1o*vSWeWL?Nc5q_bLS@J6;?OYG>! zf-3w-Lz!c%e(*T?a`^hVpVDq;J87DM|#pjw^vJaNLbT@j26%skI%jB*h)~9RZt&}Bw{A}j@u6PO+ zSR1P&(=v;y!Py;kjdsoU^69=6ZOW+Df+|apR(eLe@6dm@GxBw63g)87HXg0rd%zzP zGqNeNF6x=$8Q6ruo9CDSo63tnBcJm9Y7hNa&Yw^K@n!V4gF{E=+RD6yY)1};iUu1! zoP97C*D7?NO1Q(iYPgbFzy9=`mP1})qY!`7M5ms8Va#x!qzs2F3qtJ$F8@4V06#VK z`Ji({&vBkPQvr$i;+rX;q|)-4S!vwHsJo5C1l(f_%=kPo;RJ6kND(S}^BX>1^xVCt zVQZdljT||hKOE$OF5Cc;RRbvItoK%MZy6s*E{KTk;$1()M;jd05G{*Z^eU$`P#%oE zVk}-Xe<#hR`AGZhe+@CXk1oDr$Ml{UmELH06SFaRso8HeBS(02?y8r_e8P!hyBv1P zU$47s2UF71@XbZdfuAhNXbJCn&>IVJj(4``Xzr8|+eo%VNmEd4EI;x-SA1e=Ih<}Y zJnP{;GLw&hwah=~Qa;vw6JWT;XrAK9O|M5EDJE)PH#Rn&Gcs=ArO@l{(E9^WdK;NN z!Lrq?XC2mENj@>l$@k->DNZGD`AK#)-DJSv%gc;`yVfOy2kB*NH}J91hHszwcLeIY zkp`bVCZfLVHdDhcU5p)+Xqr*MmDv&{m5u(_vOD=@@NF&0RDqO@wz%-&BEcfnvgFF^ zEY{}vSiyHBC8knPlmo`nh%Lq#Tk6Wu@7&073(89izTxY^I22xcfx$snk2YQO_l>wi zAUH0(GE7jscO<)PZ4ZxO*Cs><*~bPgd`SwKWhLbr2lO=!9@-0@#ih7)&KGW;Q(F<` zk*pUDbYG_u#c^{ug&(_bwQ?pHZLJmA!qOfhc0_B&OM`HOkI12a)Rzmkd;b5tnA~XeAL1H+F3?n zBWnL}&N~Ks=XIyYr=83DSKqY=23k6nyN;^*tjs>uJEExiUHJd?^(Ej?f8YN|g~}3& zWQh=xWXrCsku6(xk|hjT$G#QGF4>Je*=64;g~)EKgDLyI4PzaCcc{phNIvpoqx!To&ua3CaRv8sz|SQw`IA^npn)s=UO4@82wUS=?Mk?F zGB2+4#7y#f;^Uv=Uq#+oZiE(;Y8OS<$6@UEo6aqIEvtqLIl-TjWxF4`VnM>!7*&G9 zF#*fTkUw!o-=CC$B2b;kvvZhHABU`~V@emz-Fpy;pKD#qf7WIN4c}Pb7^oTNO7MKY zzi~d`J5P128=M2PyCk8=P#1s=`4r49!mZ*(PbtRk2GS+^N?vX}^&91rC~S5m zh$Yo84F7R-9_oKS2V)oDsoi56ImkSAM<|5XT<>d{6YezKYVCLlO|))xyUIh+pvdVy z1q;3QOIhmCTgLVu7}pOHOz;GKY^=CIy`%KX`oZycjWItd??>LtnYwnz9T%YC9 zM$C(JRMjz|`*>$38-X*9ZqaHq8>e@2^cv2tI<)c?C;pDre7>ZVsj??2RKEkpzA~h@ z_{QP5*Rv7sg|^(Vqeku>)ym4}rESjX-7oHl8rdw(&JjDA54)!xfBMC+aUS$f@DeO8 zj`#z0fVMc1%7iDWqs!Kc+Myg_5cl2-9VyLweaGg0Tb{A9bBND}xDKvW^&b+!eaRYI zlgr5YQ^|XPr?^2jkxEnw{D;$6`A;t2+@}s_P*gktA`yF=caH6CcFCZKzX)e71g=YuB_KUF{X6?y~R<7T+C5%G(3;cTkECQFbJIaKrdje zq7iUwNzgoUnBOAz*&I*9uJf^$6S+)7mZ@{x!C91f4)yF&O4e1+BB0HLdslEA5W!+S z>Kl*9Q^Ozg;<}TE3qjpLu;|UDuaeja_XC-Uq87@ulz)_m;RSV;N_7pt>Yuf5-@(3N zc*x_9H}lIz$GR}-gu|k^`--!=V}@lBbUfs(BL{^7u0cU68V*yG=69|#oSf!(_4;2&#`z2CW!4$&{ducWU-_S))k?mO zuQ<&g+xTsrndM*QrwZrsrn|>ebDUbv`~4y`{L*^@OvxkZMa5kCdyNbcCsJ|^;Poer z9y*^W8t~5z4kH$sJPVj5UXP3P^wqr&@#r0&osKkvyS_D-`XD9s^GKe?tA`&JKH1Qx zA}81p&itZ_X4l33D6SAi%eyy(u}2B4V5?lou42=tgxGHCk~?%*uO2%X?0>!ptpwVz z0?pJPd_+s0ecm#{W=T7FP%XOP$ui?=VSHKSKVKw#q7|H%9uiedvouYU`_?s35Hh$8=DZWjz*=x=Srm1j+5w1|7 zd8)fRNhIS?CQeD=lms7pON@e_{jH2jI9aX1*Y zC~?SIzh*0(O=i&q4>RaRC9XZVM2s?#c_TC!F>oTme*@Q@PT3E<50%IdRd*^Au-wB5 z9>#^r;!r`k%JXjZ>wOtw=RLoT9bs4@0FknUNJzYMP*OCWu}OSX8`daBXN}!r_)$Le zUM81Vh!=yf7aZ7y)#FrgRuJdW)+tgjX)E%o?v+=Hm%uzMm#FV`Uj9lOjT}=j9e2xP zpE$fH@vz}|u^$KLrs5;12kO{mw4lIsgVXp&!cO&pkHjsoJ<3(I*KmWz(Fy5F9t)*e zqZ3<14xDb!m>fS0gALJSV`-DOqPQlmP6-3oTy&>w5b#GJxS*t${|D&%i(Td3%j`)p z7Y$Wb#Z-gVx8s&p=%HD$1vJ_1oD$b``Ew$vo9Gu`o|rCTLB06?KHc6Hmx#`?WB+$D zm@&YFYNZ^Ft~HE?bSQQ{3X@pCkZZ(v)mDe=F(8G*qJS6>;HLo1zYgQE{L`=EO%?lY z0v`M$o8vK5{@c-~h_9N=d}?i?Od7p=v!gamZYQmmV>cT!Mc(iD3=W>@xUI&*XX9DT z=a8>7U-c3V4vhlj-FN0D7JgxrQnx|g7!$}FqyJI@fZL~H`@lDlfHE{Ly$_dU&p4~% z^LF06OH>ejg0)$bGRc_y6CUuzlX&{8-Dy>)-@moqC?Smq%Mx%c3F_o*d+rwV^-lbc z-e9`D3(*t&J!L6H?~I{GFYW?(owSd#R^wd<(m&lX`%WInEH=TIo|}u3 z3tIDh8qKNJl)J!-P4QX(2x7M4<$@<%8(?-`zn0Lj=9vlGuUXEY3nEUj*$zsq$$7bH zn3r#!5^+DA7es|f39z?a5~4it3nwxP!UQ_0ydPc>u_oO3iJ>P5UK+@|Y~r-Bbe#H5 zcvWC!#@QMdGn;7-?pU|LMt(kcoHRsR*@t+H`u zNwyJ}m zG#3HLq63TenG$rTt``}8`mQZe?fctMGr-TXcWy79rS{Hvhb#HMYIi5d-O8U4wTU-1>g3K@6F*RYI9S`E0(A)A za;Lk8E4(8|vb}S21?b(M0Ov{)hLYm^(^TNu_8Mev9sQw_9f^{9Q^~RBa$zNf>eHJV zybm&xa73R_!umCMk7(Gh@r{qskB@1Fo%p|`cfpWw9oVx8e!ti25+4|4!|p^Rd$mL0 zGicq%ZYwxp#(w*gL z{1|t}ouU#0Y4$pdNhevp%hQ}9fa@O3n0x2^DtaV~!+ioGu`2Rd!p5x=_V#Bw$eA)= zUlDlv0V?tne~uFJB>rX>?)1q@?}8ce^$yFv@n=S=Bs5C#qrFya=F(b|)u;U(f{rFr zU7sf=qZPU%%^fK0xVtY#H!@HfzE3w%kM0?BRZpNpVPk_{YEX@__a}E#@qH5)ox%z2 z1QS3^h2V7-(7zVRS~^%|j8)qYZmW#cMa$dL%!~L{QLEEpB|kM8Z?-G`U&#hoML>bo zJc8u#GrtwVsb&T0735rZAx_!O}yeMm^B@>wBmA14z)E=pP^F_wMqMz`<_X zp0-r>KcD57_x>FnfzaAKTuvd)p&s8XYH~H5W2;isu(IZOFZ+Kq zBEO#jnE&~IkB)!=>%0q5tDpVfyPW=n=QMHV-=o8i05ggMyO;|AssDWDE423S1^}4? zgOJan{ny<8cZPBRqWJHa@{{&7Qw!~8t{Qrz0l;+SelwR>T4v_WMuu~W;cftYg@r-? zEA?3CMzn^;f<`H3v+oJ#-ez_Q*Q{Z=zOkvlfw1S3WA|wv&FkX1Tna&jI&b`zE>O@k z4uvA$IeaW1+ok2WQ+L!}_s=)sRWVws)-#R1vamBUGHQ3^QGnJQsw%0g(*sa~Bz6uC z4Zu{HXTsYe|A0JuZM0mWK&QM9P}22)U!JLy4nj2RO2cW*=QN9AEQ2h6w-85-Klsn_x^aJ$BVW~Mq+I|@NCg%>8YLCS1Htu z562@TG6_&$zaP_yrJgyfb<8jcp8rDtfao5ZOoozl&F1PlhV)$~-%elHHaMDz6&Tai zp8|C|wQ>y`y#&T=O^Qf)C6V2UhH|47kR^yWHp^)SB+0qP)N^U-x(wl?I3N3nwO))y z)|rQkaaN^P&0ApFwvv!Zam)Gfx=-?n$n|7oVk|n_6j%lBF+Myt_3OUFvVL>m_RFj? zDbv}jSp=xY3^Vvcfb?QyWZX7Gj*8YotleG9%*OtDVA-5c2ga6fuyz& z(aQ~h(Fau#T1Jy03p zywz%~18^Gs*s4t|A6313rPpRu$~-7pWKnkx{!AIH2qNtqSf2?N>4apv#9R{bPse0Q z0Nqg=roY=WZ5tdOOFOAz=C@`IzNv0X=Z-=pMOnl`gbX#^Ui{iLM9>_^YqK_K$j{2- zh8rfg7L^TaH^)ptKWH+|RP$y;GFS~?YT^6I+owP!aQXSA+Ame-l4RTnr)2!{jRmNN zeEQ|MjK}06_?FL2U3gMR)@*j9#f|@xP47di&bzz5S#QRptS^ofj(x=tp)(n_54W@ zC?D?8qtbEDoE%G=Pa1m5_zP(1ZZ6ItqHmCh7e9)&6UJkvuT=H5k=Ge&uTBJA|Hn>M z5x}J}ahc?!A<0U3+MQMZQE8!fbv*jo)w$`S?T=tI<2Il`X;?8jLGJLW1{mSt8?A%wX6<-!EkX~2r`h>at$gi= za+j@QOaSkQnaNnoZfM;heWwPEs){YHuw^Ddb!|^1U$VXJvk@A4t>#?ICCa)DG!=3< zJI%^yOyvuWZTP<*h*=$4uNf%b-O#h@XR~r27Kn4{GT78pi?9h-Lsa#3`2zw=Zp_h6 zRYK*0{DJG0&G?eB0+5&!_B1BP%xe43UBk~e zJdZlliZ>N&#anDcef+@r(KssbW|e}x#Z4v7%qF!4xA+-DI4{@}uF zp;5Ua7>Ikv^prD2ybiFn0urFA#cOCC+V|0x zoIZ91Ig9m-E!$an+W}NV3Aqy-&-83-bZi6vzYofvd3w@Z)*8%9cN+W7lcGZ_U{x~! zQFin6+sex0mi_xUfsrD(=_?V=@#>BWNoJIS{=W^Pg|+V|B6wmvVYgfZ<>%qb2In;@ zlVx{YB)#trcT2<7bqtvc{XaffA$zzjdfjm-`vA>b3jK$M1~xoFlOf*?o*0wx$1(oP za=tVHrk94M_}o7>C~y_L0E~KvhVT5pk~k%PwgAg6!2j&hzxz03Azi6t;``+bK+WYA zy^MfGTp8RGUlVf7mI_X9Q$_ zf2eWQ1KQAK!&b^pv5!CYoUgy=_gN1eK4fQMaTPGSTNCEs~xEC z>xLdNcLL~=JpMBJEv$YAl?yXLx@?}o$DgBMmK$6)(vPOZk0imh5L_J7FWz?aYX1Ov zY=Ax!q+Tik30*lr1D>}?&lKOzqs~Av=+j97mahEw38;H`jt1oE( z@naig=L;GVbFi})R$iMKz+Ze;=P;)^a==TmATd%DbipB|K z_9G7_c9Q55mJd=KO-?u@iW-k<%(|1ojntBE7l}Ojd;by`HHuVUdIGUQ(5G0JtgWC|5W;g!XqjQIn9PK;mR8p8 zy(yqQx4bSQPD#AZ6kKhuen7eBz7MyhX5L zWb3(0*QO7Ltz{X9yAfa`8kUz}h|RqtDo7623_+eexr#wK<5?|2Apb`_wzBf0#6EzJ z6F@K9y}Tl9Ze!=wa}U(d!Dhe0db82)&7k_Q%hZ`q0X&PJ!>sFiq5djC2M@jGYcW2> zUlahFaGkB4u+%Q70XQLY0o)^dAJw7ggJ^AL9}V(zadk&+i;)19EbR)(X~;{-To_ia z)|U*AHeHSR}~OR<1t(t1<0tooBqJT%W2V(8AzgKE|OTXg_# zQ=nZcgFOQ5-A1R5|E#WPfsQ-H@(^v3c<;UfTj;sC@N#&5Cd~yfi_XtRoJ8BgR2F@5e@1Ud08jB(e0H^~B$zmfw*0X2@pPbUS~ybyBD;@0`*W zXiXR_EGTxWG&~2{p9gLxpn{&$(oxn{Y$ezkvb0*ZD;au<@TRi1mDJXz7G0!^yOz9S zUWCctzS%w35}iS|ES`(L91plcleos|@^!?928YpE2zr>;)^R0tqWFnAz}MmzmFVT1vw&0U012BW(d|NIPE#RuIhr?rpEhW8C`gc zu(^~j_5u?;Q)==NVXMJ>7eK!K3;?8Fw675r@Z-Cf6(1(Pa!uZG8(<3_;Lz&xi7}LE zrjfdFUi6uM?Z|q^F`@m1I-~F61D2AhJRz=y9~Bd0r1pVKPW^mEQrP*3*M$RSe37W> zxJz&@NxkYdX*uA>5V)VV$Q91@Xrg>%Q}}*k6lxRj&a!k1!&nJuLm1x%=$buTQT}m{ zWjt8uiVGAdig=OdfzbNw}1lQil97r7;T~fdZm0}a~8k-p4Z_#=5RMJ)1OsN_yDlyzmS#hWzP{zS~HEEl@HFKjSA&+u6G}*elaHye& zW1p*bX+ojW?vcihlVn$rjo!y$G|s^+V8Kv#SfB}q-ud9D=RD7+nlGXj!;OSU23&m9 zt0*OCTqj;O3P>!*ht?m$5K1l-X-{5fMJ6g4NOIHX@`uapSok;T9O9(ei;1dFNA+1X ztB7v}_Dg=hnltExZTz;H;CrI41j-^2hrO=pV4!cg8I$JXcFrPHaX3jdBx!MCrtEsy z$>;k&DnIj=o375ZzYDuw@4ll%OB=rdQq%kA&xRO%rg#43e>Ll&Omz59@M0TD-ErJZ zl$#kD(eA#aC9le-%(E|>EV7d}1(B6Y48OdSA7uWHnCy-DQXF^lFFDSK`BV5lv}47L zCSv68I`7ts)%M)71%n%J5l-y7?1fMbO$xjRq&J!hr5jHn9TF%aqcB;CPdlJKYW|$M zKnPE|B{cJ(Mq2tNk@4eX5y6?z4XSnjMem?O%$w9$Ctx1fKE96?l!?}T&Bz7l0A@4q zYPvlyok<=!9C=|1reV%_nB{R?PyQEFw>UDWt240d2uy@wx=1T9X^*Sxwmf*?=e?FFH23QA*{gaH#K89{ z;@x_;HXBy0_3W{!ac;fZhomw;K=PcqCWBAheem5oz<_Z;BJZ&gs78US&{V)(7kpUw zIVfZ=B#!G!&hz*|ZXn>)Xks!!kUs>!wMImwYzeNmzEP1qf{~V;*O*w?>Yi}qC1g9N z+OYs6vvyn~vV4-& z+`7gDeaJ}S*8nST{?HM|bblpguk{xS0TS9RQv9TQ&*$Xk)+DuC>eOzDEubb`TL4N> z-as#UKt=M87DTw*dWuc(<_shrf~B;fU1UDAA5e??%N|0V-2 zp_~NX

}A-#;q6lc@ZzYWNNZqWkxcPrjj|fJd~g(^tm%uiv>GArXyFv8aLP2>tI9 zPQqJot4IA6|LscSvP!lVVb3`8e+E&0GZoyzC?ekdHLO1)RDUFqX22`~js4FP_&cA6 z^)b8z0KvkY{joRCWWfrP=Gk1PZ4qVvRbPy3h)|cDdE1}7h1|E zFVncd5wrnlYg=;j3a`o1I;mT_`BQ3UH{TeAOo57rVfxT-X=1Pa0f~ zF*_zxp#nDL6K7AC%GZqz9eD^e%gWa3Um}&yHXJhD$$FJ9qmqS?ScM- zz?6%L?M+ABoDCO64-Y?&QtYd7U#(_M2KkD+;Nde+4R8aze=C3xPX%!l20nOot{IK6 zO{u7ziP3$M=)O{}wcjD$h(YUG?sN(uA0PD30*qwxEI8m&wO)64Jmz(xpc#}^q!(VTG9jXw zt26N29-t8Xgz6G*1-~6XD|pOVG0dos091TY0?7`#X7SD9WTaEt5nSM8=W8y^;{j%4 za!}Xyk_a-QikWQB%Od4C~}a+!i}NM3o(ZaVjBJL3Nd!PC&1~O#Ft{ z`RPSEk*bmHBai~Q0sgkWCM2H(2Sw`|W!DT4W)Px%#jhm1QdT#d^LzDI32z@=DLhcv z!27+)Xvuev4%W^T1HiC%OPwof5{OX-%yo++MZ`9>G+&`amJ)q67)@J_;?I**vD$?XSoHBe#pw}ZjKjoSvC z4sYJyAad~XKHQLH$PyTP`4!&b&@CD(#gErmUx6NnB6qj?l}$qV1_N(M27CkLDs%+4 z7bB0r#C#yNv#%GVYof91*drGM$KLN{oG=`&`mHBIUOFnjQb2)wmcoYp#rs=5lH`?O zd`yM)=+XNJ%cW|y0!R-BdCpO;_Ilk>{mRj^uhI; zI32Q}Vw9awL8Omh%et(xmCk)S{Du6ykhe?v#_N=qO@zg>305o*#x!*U_Xjj}Iagk# zvdYqCNct-I0@?#6(L7 zj`PC=P*jh#18%_IT%x&xur5{12b05gKDq0xkZQ>dxWjkhi`*hxd&wK|p7S0?@~nX@ zr;6SJAEg6z+5#CaJVr zNQlh73@3$S1RUJS0vC!+TKN&n;Lxg=asVLu)`E2F=`&LmTHi^~ne6H%V=O}%Dn(N5 zPNxb?8JLr8$4U{c6J48~fI~NW`-t>21ye@$bpxHId{)H-IE9yDp^$;KNUKX)>93hP zI;z8$lgIlA4p`ua>A`p8>7IqDmL(nQ>$Qm7SPJaU2p6k)p&<+5gX}g^Kiua2#xvw+ z$0>Db`YuXDkwbWc1kj5YGG)@g`YKEB30I%-YNpg$ma-}kSOG+=9w0nXphXcg{r$Cv z@`b#l=u_(h=frJQEkfwdy*<@&oCFc9p+oU6?UvuNCd*C6jco(U(~ll@M9rNrVFCZN zsTofoKMBO4vav}v_7j8xtjcvCenqk#Cn@1=mXVcO8@A0~Pt^~gV={-W+n{scS7Iw@m$ZIosMx&uqCe|H`_gNls3N5a zf$D+RE^2AC+#wPlaIVQjmRc27vk>I8x{up;IO5-=?AjPpBOvDD(HH~<HY1#_qtf2c$?yD1eMKAuDuCrvqQ;Wd zejDEU%kvw`Yx~~kV+w{i*6V(|4}2`2RZLtOOJ8=RC+XS07NY!_Lls_0^K~kel_qU8 zdB)GYOu^=U@?>Fv6||f)K$wX>Nhwh08ZD8Yw^q@|zG@ZeQAMZ#>NCmj{q%l`8WO8s%4C`T zv|Bg!$0GdGANZSp)uV!c(bF~?vC#Zaw+~q8dUBQQp#$2j!+-l@sc8ha;53WQZrrD) v{eLc_${Kc`dYu>j?GydaDYLkRcZ|EkDsv+a;_@B`{COm;Bvts($nXCEOjDru diff --git a/screenshots/scrn_4_rho_graph.png b/screenshots/scrn_4_rho_graph.png index fcb2479a591f9a20d11ba60b8925071a7d3026fa..9bf286767f323097ddd1dd10c0b54a8c3539253c 100644 GIT binary patch literal 45421 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 Y&~4mO^{Xv02q5j+vDa0+ec!470-H5`1poj5 literal 90129 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

  • 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 1 else "http://127.0.0.1:5000/" +BENCHMARK_DATA = os.path.join(ROOT, "benchmarks", "LP_half_width_2d", "data") async def main(): - import os os.makedirs(SCREENSHOTS_DIR, exist_ok=True) async with async_playwright() as p: @@ -16,17 +28,17 @@ async def main(): # Handle alert dialogs automatically page.on("dialog", lambda d: asyncio.ensure_future(d.accept())) - await page.goto("http://127.0.0.1:5000/") + await page.goto(URL) await page.wait_for_load_state("networkidle") await asyncio.sleep(2) - # --- Load benchmark via Detect Program modal --- + # --- Load the benchmark via the Upload Program dialog --- await page.click('button[data-target="#detectProgramModal"]') await asyncio.sleep(1) # Upload the benchmark JSON await page.set_input_files('#detect-program-file', - "benchmarks/LP_half_width_2d/data/benchmark.json") + os.path.join(BENCHMARK_DATA, "program_symbolic.json")) await asyncio.sleep(0.5) # Click "Load" button @@ -35,16 +47,17 @@ async def main(): # Set multiple rho and tau values for interesting graphs # First select the general formulation to show rho+tau fields - await page.select_option('#lp-options', 'robust-regularization-relaxation') + await page.select_option('#lp-options', 'regularization-relaxation') await asyncio.sleep(0.5) - await page.fill('#lp-rho', '0,0.25,0.5,0.75,1') + # (rho = 0 is left out: relaxation with rho = 0 is unbounded.) + await page.fill('#lp-rho', '0.25,0.5,0.75,1') await page.fill('#lp-tau', '0,0.01,0.1,1') await asyncio.sleep(0.3) # Upload scenarios file await page.set_input_files('#file', - "benchmarks/LP_half_width_2d/data/scenarios.csv") + os.path.join(BENCHMARK_DATA, "scenarios.csv")) await asyncio.sleep(0.5) # Screenshot 1: Tool (everything above results, including Solve button) @@ -57,7 +70,7 @@ async def main(): result_box = await result_card.bounding_box() await page.screenshot( - path=f"{SCREENSHOTS_DIR}/1_tool.png", + path=f"{SCREENSHOTS_DIR}/scrn_1_tool.png", clip={"x": 0, "y": 0, "width": 1400, "height": result_box["y"] - 5}, full_page=True ) @@ -76,21 +89,21 @@ async def main(): result_card_el = page.locator('.card.mt-4:has(.card-title:has-text("Result"))').first await result_card_el.scroll_into_view_if_needed() await asyncio.sleep(0.5) - await result_card_el.screenshot(path=f"{SCREENSHOTS_DIR}/2_results.png") + await result_card_el.screenshot(path=f"{SCREENSHOTS_DIR}/scrn_2_results.png") print("Screenshot 2: Results table - done") # Screenshot 3: tau graph tab await page.click('a#result-graph2-tab') await asyncio.sleep(1.5) tau_pane = page.locator('#result-graph2') - await tau_pane.screenshot(path=f"{SCREENSHOTS_DIR}/3_tau_graph.png") + await tau_pane.screenshot(path=f"{SCREENSHOTS_DIR}/scrn_3_tau_graph.png") print("Screenshot 3: Tau graph - done") # Screenshot 4: rho graph tab await page.click('a#result-graph-tab') await asyncio.sleep(1.5) rho_pane = page.locator('#result-graph') - await rho_pane.screenshot(path=f"{SCREENSHOTS_DIR}/4_rho_graph.png") + await rho_pane.screenshot(path=f"{SCREENSHOTS_DIR}/scrn_4_rho_graph.png") print("Screenshot 4: Rho graph - done") await browser.close() From 4179f2681637e8e78d956898215f967b2e4f618b Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 22:05:58 -0500 Subject: [PATCH 13/14] Remove the leftover LPV numeric folder and tidy benchmark output - Delete benchmarks/SDP_LPV_stability_3d_numeric: its files duplicate SDP_LPV_stability_3d's program_numeric.json and scenarios_numeric.csv (and its "symbolic" program had no F_d). The numeric-mode test now uses the main LPV files. - run.py scripts print the actual confidence level (99.9999%) instead of a hard-coded "99%". - README: drop the c.csv files that no longer exist from the benchmark layout, and mention --solver and the extra packages for plotting. Co-Authored-By: Claude Opus 5.5 --- README.md | 7 +- benchmarks/LP_inventory_11d/run.py | 4 +- benchmarks/LP_portfolio_cvar_13d/run.py | 4 +- benchmarks/LP_power_dispatch_120d/run.py | 4 +- benchmarks/QP_radiation_therapy_50d/run.py | 4 +- benchmarks/SDP_LPV_stability_3d/run.py | 4 +- .../data/program_numeric.json | 80 -------------- .../data/program_symbolic.json | 80 -------------- .../data/scenarios.csv | 100 ------------------ benchmarks/SDP_Quadratic_Stability_6d/run.py | 4 +- benchmarks/SDP_covariance_wine_15d/run.py | 4 +- benchmarks/SDP_ellipsoid_enclosure_15d/run.py | 4 +- tests/test_numeric_mode.py | 4 +- 13 files changed, 21 insertions(+), 282 deletions(-) delete mode 100644 benchmarks/SDP_LPV_stability_3d_numeric/data/program_numeric.json delete mode 100644 benchmarks/SDP_LPV_stability_3d_numeric/data/program_symbolic.json delete mode 100644 benchmarks/SDP_LPV_stability_3d_numeric/data/scenarios.csv diff --git a/README.md b/README.md index 98d4a66..1e37b04 100644 --- a/README.md +++ b/README.md @@ -170,7 +170,6 @@ Each benchmark follows a standardized layout: │ ├── program_numeric.json Upload-Program definition (numeric mode) │ ├── scenarios.csv Sampled uncertainty realizations │ ├── scenarios_numeric.csv Per-row-flattened matrices for numeric mode -│ ├── c.csv Objective vector │ └── ... Additional problem-specific data └── results/ ├── metrics.json Solver output (cost, risk bounds, complexity) @@ -183,13 +182,13 @@ Each benchmark follows a standardized layout: ```bash cd benchmarks/ -# Regenerate scenarios (optional, data already provided) +# Regenerate scenarios (optional, data already provided; some generators need extra packages, listed at the top of the script) python generate.py -# Solve the program +# Solve the program (MOSEK by default; e.g. --solver CLARABEL without a MOSEK licence) python run.py -# Generate the paper figure +# Generate the paper figure (needs matplotlib: pip install matplotlib) python plot.py ``` diff --git a/benchmarks/LP_inventory_11d/run.py b/benchmarks/LP_inventory_11d/run.py index 3b06dbf..2d4463b 100644 --- a/benchmarks/LP_inventory_11d/run.py +++ b/benchmarks/LP_inventory_11d/run.py @@ -204,9 +204,9 @@ def main(): print(f" - Service penalty: ${slack_cost:.2f}") print(f"Complexity (k): {k} support constraints") if degeneracy: - print(f"Risk Bounds (99%): [unreliable, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [unreliable, {eps_upper:.4f}]") else: - print(f"Risk Bounds (99%): [{eps_lower:.4f}, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [{eps_lower:.4f}, {eps_upper:.4f}]") print("-" * 65) print() diff --git a/benchmarks/LP_portfolio_cvar_13d/run.py b/benchmarks/LP_portfolio_cvar_13d/run.py index 55f23d4..1d642fa 100644 --- a/benchmarks/LP_portfolio_cvar_13d/run.py +++ b/benchmarks/LP_portfolio_cvar_13d/run.py @@ -202,9 +202,9 @@ def main(): print(f"CVaR (95%): {cvar_actual*100:.4f}%") print(f"Complexity (k): {k} support constraints") if degeneracy: - print(f"Risk Bounds (99%): [unreliable, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [unreliable, {eps_upper:.4f}]") else: - print(f"Risk Bounds (99%): [{eps_lower:.4f}, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [{eps_lower:.4f}, {eps_upper:.4f}]") print("-" * 65) print() diff --git a/benchmarks/LP_power_dispatch_120d/run.py b/benchmarks/LP_power_dispatch_120d/run.py index 92e0df3..af5db37 100644 --- a/benchmarks/LP_power_dispatch_120d/run.py +++ b/benchmarks/LP_power_dispatch_120d/run.py @@ -196,9 +196,9 @@ def main(): print(f" - Imbalance penalty: ${slack_cost:.2f}") print(f"Complexity (k): {k} support constraints") if degeneracy: - print(f"Risk Bounds (99%): [unreliable, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [unreliable, {eps_upper:.4f}]") else: - print(f"Risk Bounds (99%): [{eps_lower:.4f}, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [{eps_lower:.4f}, {eps_upper:.4f}]") print("-" * 65) print() diff --git a/benchmarks/QP_radiation_therapy_50d/run.py b/benchmarks/QP_radiation_therapy_50d/run.py index 5547780..6aca4f9 100644 --- a/benchmarks/QP_radiation_therapy_50d/run.py +++ b/benchmarks/QP_radiation_therapy_50d/run.py @@ -267,9 +267,9 @@ def main(): print(f"Objective Value: {cost:.4f}") print(f"Complexity (k): {k} support constraints") if degeneracy: - print(f"Risk Bounds (99%): [unreliable, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [unreliable, {eps_upper:.4f}]") else: - print(f"Risk Bounds (99%): [{eps_lower:.4f}, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [{eps_lower:.4f}, {eps_upper:.4f}]") print("-" * 70) print() diff --git a/benchmarks/SDP_LPV_stability_3d/run.py b/benchmarks/SDP_LPV_stability_3d/run.py index db8c964..8a0212e 100644 --- a/benchmarks/SDP_LPV_stability_3d/run.py +++ b/benchmarks/SDP_LPV_stability_3d/run.py @@ -143,9 +143,9 @@ def main(): print(f"Optimal Cost: {cost:.6f}") print(f"Complexity (k): {k}") if degeneracy: - print(f"Risk Bounds (99%): [unreliable, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [unreliable, {eps_upper:.4f}]") else: - print(f"Risk Bounds (99%): [{eps_lower:.4f}, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [{eps_lower:.4f}, {eps_upper:.4f}]") print("-" * 60) print() diff --git a/benchmarks/SDP_LPV_stability_3d_numeric/data/program_numeric.json b/benchmarks/SDP_LPV_stability_3d_numeric/data/program_numeric.json deleted file mode 100644 index ac1f091..0000000 --- a/benchmarks/SDP_LPV_stability_3d_numeric/data/program_numeric.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "type": "SDP", - "mode": "numeric", - "c": [ - [ - "-1" - ], - [ - "0" - ], - [ - "-1" - ] - ], - "Q": [ - [ - "0.1", - "0", - "0" - ], - [ - "0", - "0.1", - "0" - ], - [ - "0", - "0", - "0.1" - ] - ], - "E": { - "0": [ - [ - "0", - "0" - ], - [ - "0", - "0" - ] - ], - "1": [ - [ - "-1", - "0" - ], - [ - "0", - "0" - ] - ], - "2": [ - [ - "0", - "-1" - ], - [ - "-1", - "0" - ] - ], - "3": [ - [ - "0", - "0" - ], - [ - "0", - "-1" - ] - ] - }, - "n_x": 3, - "lmi_size": 2, - "rho": "1.0", - "tau": "0", - "confidence": "1e-06", - "lmi_e_size": 2 -} \ No newline at end of file diff --git a/benchmarks/SDP_LPV_stability_3d_numeric/data/program_symbolic.json b/benchmarks/SDP_LPV_stability_3d_numeric/data/program_symbolic.json deleted file mode 100644 index 178be87..0000000 --- a/benchmarks/SDP_LPV_stability_3d_numeric/data/program_symbolic.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "type": "SDP", - "mode": "symbolic", - "c": [ - [ - "-1" - ], - [ - "0" - ], - [ - "-1" - ] - ], - "Q": [ - [ - "0.1", - "0", - "0" - ], - [ - "0", - "0.1", - "0" - ], - [ - "0", - "0", - "0.1" - ] - ], - "E": { - "0": [ - [ - "0", - "0" - ], - [ - "0", - "0" - ] - ], - "1": [ - [ - "-1", - "0" - ], - [ - "0", - "0" - ] - ], - "2": [ - [ - "0", - "-1" - ], - [ - "-1", - "0" - ] - ], - "3": [ - [ - "0", - "0" - ], - [ - "0", - "-1" - ] - ] - }, - "n_x": 3, - "lmi_size": 2, - "rho": "1.0", - "tau": "0", - "confidence": "1e-06", - "lmi_e_size": 2 -} \ No newline at end of file diff --git a/benchmarks/SDP_LPV_stability_3d_numeric/data/scenarios.csv b/benchmarks/SDP_LPV_stability_3d_numeric/data/scenarios.csv deleted file mode 100644 index 6520317..0000000 --- a/benchmarks/SDP_LPV_stability_3d_numeric/data/scenarios.csv +++ /dev/null @@ -1,100 +0,0 @@ -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.112119463901388272e+00,-1.018686577316898045e+00,-1.018686577316898045e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.056059731950694136e+00,-2.056059731950694136e+00,-2.037373154633796091e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.101785268712619725e+00,-1.016964211452103362e+00,-1.016964211452103362e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.050892634356309863e+00,-2.050892634356309863e+00,-2.033928422904206723e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.099266417871516133e+00,-1.016544402978586170e+00,-1.016544402978586170e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.049633208935758066e+00,-2.049633208935758066e+00,-2.033088805957172340e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.093053472563251916e+00,-1.015508912093875393e+00,-1.015508912093875393e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.046526736281625958e+00,-2.046526736281625958e+00,-2.031017824187750787e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.091382360719866718e+00,-1.015230393453311120e+00,-1.015230393453311120e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.045691180359933359e+00,-2.045691180359933359e+00,-2.030460786906622239e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.082877396977558249e+00,-1.013812899496259634e+00,-1.013812899496259634e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.041438698488779124e+00,-2.041438698488779124e+00,-2.027625798992519268e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.077805892378880692e+00,-1.012967648729813375e+00,-1.012967648729813375e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.038902946189440346e+00,-2.038902946189440346e+00,-2.025935297459626749e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.070825213281538346e+00,-1.011804202213589798e+00,-1.011804202213589798e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.035412606640769173e+00,-2.035412606640769173e+00,-2.023608404427179597e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.066600794579191103e+00,-1.011100132429865184e+00,-1.011100132429865184e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.033300397289595551e+00,-2.033300397289595551e+00,-2.022200264859730368e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.065406924413758283e+00,-1.010901154068959640e+00,-1.010901154068959640e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.032703462206879141e+00,-2.032703462206879141e+00,-2.021802308137919280e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.060168364526724361e+00,-1.010028060754454060e+00,-1.010028060754454060e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.030084182263362180e+00,-2.030084182263362180e+00,-2.020056121508908120e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.059936635518561765e+00,-1.009989439253093702e+00,-1.009989439253093702e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.029968317759280882e+00,-2.029968317759280882e+00,-2.019978878506187403e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.044691298553543923e+00,-1.007448549758924061e+00,-1.007448549758924061e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.022345649276771962e+00,-2.022345649276771962e+00,-2.014897099517848122e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.038227421969654785e+00,-1.006371236994942464e+00,-1.006371236994942464e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.019113710984827392e+00,-2.019113710984827392e+00,-2.012742473989884928e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.028796208339347373e+00,-1.004799368056557896e+00,-1.004799368056557896e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.014398104169673687e+00,-2.014398104169673687e+00,-2.009598736113115791e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.021557424694345073e+00,-1.003592904115724105e+00,-1.003592904115724105e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.010778712347172537e+00,-2.010778712347172537e+00,-2.007185808231448210e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.016981874661724738e+00,-1.002830312443620864e+00,-1.002830312443620864e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.008490937330862369e+00,-2.008490937330862369e+00,-2.005660624887241728e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.009784483346217954e+00,-1.001630747224369733e+00,-1.001630747224369733e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.004892241673108977e+00,-2.004892241673108977e+00,-2.003261494448739466e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.001643885532265799e+00,-1.000273980922044448e+00,-1.000273980922044448e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.000821942766132899e+00,-2.000821942766132899e+00,-2.000547961844088896e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-4.000301897762891024e+00,-1.000050316293815245e+00,-1.000050316293815245e+00,2.000000000000000000e+00,0.000000000000000000e+00,-2.000150948881445512e+00,-2.000150948881445512e+00,-2.000100632587630489e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.999696176606913234e+00,-9.999493627678188723e-01,-9.999493627678188723e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.999848088303456617e+00,-1.999848088303456617e+00,-1.999898725535637745e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.990284873555570933e+00,-9.983808122592618961e-01,-9.983808122592618961e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.995142436777785466e+00,-1.995142436777785466e+00,-1.996761624518523792e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.988665699950435073e+00,-9.981109499917392158e-01,-9.981109499917392158e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.994332849975217536e+00,-1.994332849975217536e+00,-1.996221899983478432e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.981284718068835549e+00,-9.968807863448059248e-01,-9.968807863448059248e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.990642359034417774e+00,-1.990642359034417774e+00,-1.993761572689611850e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.959597372777234003e+00,-9.932662287962057412e-01,-9.932662287962057412e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.979798686388617002e+00,-1.979798686388617002e+00,-1.986532457592411482e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.957530291616739859e+00,-9.929217152694566062e-01,-9.929217152694566062e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.978765145808369930e+00,-1.978765145808369930e+00,-1.985843430538913212e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.947227841127700643e+00,-9.912046401879500701e-01,-9.912046401879500701e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.973613920563850321e+00,-1.973613920563850321e+00,-1.982409280375900140e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.946295188037403534e+00,-9.910491980062339223e-01,-9.910491980062339223e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.973147594018701767e+00,-1.973147594018701767e+00,-1.982098396012467845e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.942238504692537227e+00,-9.903730841154227971e-01,-9.903730841154227971e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.971119252346268613e+00,-1.971119252346268613e+00,-1.980746168230845594e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.941438450081389266e+00,-9.902397416802315444e-01,-9.902397416802315444e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.970719225040694633e+00,-1.970719225040694633e+00,-1.980479483360463089e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.937748798774406200e+00,-9.896247997957343667e-01,-9.896247997957343667e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.968874399387203100e+00,-1.968874399387203100e+00,-1.979249599591468733e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.934987861979514445e+00,-9.891646436632524075e-01,-9.891646436632524075e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.967493930989757223e+00,-1.967493930989757223e+00,-1.978329287326504815e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.932403097319645546e+00,-9.887338495532742577e-01,-9.887338495532742577e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.966201548659822773e+00,-1.966201548659822773e+00,-1.977467699106548515e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.920677188953607395e+00,-9.867795314922679362e-01,-9.867795314922679362e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.960338594476803697e+00,-1.960338594476803697e+00,-1.973559062984535872e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.918386043444387568e+00,-9.863976739073979649e-01,-9.863976739073979649e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.959193021722193784e+00,-1.959193021722193784e+00,-1.972795347814795930e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.911122289839947364e+00,-9.851870483066578199e-01,-9.851870483066578199e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.955561144919973682e+00,-1.955561144919973682e+00,-1.970374096613315640e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.882451814953700175e+00,-9.804086358256167699e-01,-9.804086358256167699e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.941225907476850088e+00,-1.941225907476850088e+00,-1.960817271651233540e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.882235534418983391e+00,-9.803725890698306022e-01,-9.803725890698306022e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.941117767209491696e+00,-1.941117767209491696e+00,-1.960745178139661204e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.880728579646800291e+00,-9.801214299411333819e-01,-9.801214299411333819e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.940364289823400146e+00,-1.940364289823400146e+00,-1.960242859882266764e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.880334135125258488e+00,-9.800556891875430443e-01,-9.800556891875430443e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.940167067562629244e+00,-1.940167067562629244e+00,-1.960111378375086089e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.869351375544245020e+00,-9.782252292573740959e-01,-9.782252292573740959e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.934675687772122510e+00,-1.934675687772122510e+00,-1.956450458514748192e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.864078892605931514e+00,-9.773464821009885117e-01,-9.773464821009885117e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.932039446302965757e+00,-1.932039446302965757e+00,-1.954692964201977023e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.860577962523235929e+00,-9.767629937538726548e-01,-9.767629937538726548e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.930288981261617964e+00,-1.930288981261617964e+00,-1.953525987507745310e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.857147345116424209e+00,-9.761912241860707384e-01,-9.761912241860707384e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.928573672558212104e+00,-1.928573672558212104e+00,-1.952382448372141477e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.845989690128260197e+00,-9.743316150213767735e-01,-9.743316150213767735e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.922994845064130098e+00,-1.922994845064130098e+00,-1.948663230042753547e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.839572139990564459e+00,-9.732620233317607061e-01,-9.732620233317607061e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.919786069995282229e+00,-1.919786069995282229e+00,-1.946524046663521412e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.835355881347024987e+00,-9.725593135578375348e-01,-9.725593135578375348e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.917677940673512493e+00,-1.917677940673512493e+00,-1.945118627115675070e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.830284674414752732e+00,-9.717141124024587517e-01,-9.717141124024587517e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.915142337207376366e+00,-1.915142337207376366e+00,-1.943428224804917503e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.819036109862361528e+00,-9.698393516437269213e-01,-9.698393516437269213e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.909518054931180764e+00,-1.909518054931180764e+00,-1.939678703287453843e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.815919392219989437e+00,-9.693198987033315728e-01,-9.693198987033315728e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.907959696109994718e+00,-1.907959696109994718e+00,-1.938639797406663146e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.814404611277317780e+00,-9.690674352128862967e-01,-9.690674352128862967e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.907202305638658890e+00,-1.907202305638658890e+00,-1.938134870425772593e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.812278326683153473e+00,-9.687130544471922455e-01,-9.687130544471922455e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.906139163341576737e+00,-1.906139163341576737e+00,-1.937426108894384491e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.802728301223997409e+00,-9.671213835373329015e-01,-9.671213835373329015e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.901364150611998705e+00,-1.901364150611998705e+00,-1.934242767074665803e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.801470313725866745e+00,-9.669117189543110502e-01,-9.669117189543110502e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.900735156862933373e+00,-1.900735156862933373e+00,-1.933823437908622100e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.795039876687112734e+00,-9.658399794478520484e-01,-9.658399794478520484e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.897519938343556367e+00,-1.897519938343556367e+00,-1.931679958895704097e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.792746698677678108e+00,-9.654577831129463883e-01,-9.654577831129463883e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.896373349338839054e+00,-1.896373349338839054e+00,-1.930915566225892777e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.792409306119812751e+00,-9.654015510199687178e-01,-9.654015510199687178e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.896204653059906375e+00,-1.896204653059906375e+00,-1.930803102039937436e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.791711274005299170e+00,-9.652852123342164914e-01,-9.652852123342164914e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.895855637002649585e+00,-1.895855637002649585e+00,-1.930570424668432983e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.782796656829930715e+00,-9.637994428049884155e-01,-9.637994428049884155e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.891398328414965357e+00,-1.891398328414965357e+00,-1.927598885609976831e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.752262165531660809e+00,-9.587103609219435052e-01,-9.587103609219435052e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.876131082765830405e+00,-1.876131082765830405e+00,-1.917420721843887010e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.743087247934401063e+00,-9.571812079890668068e-01,-9.571812079890668068e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.871543623967200531e+00,-1.871543623967200531e+00,-1.914362415978133614e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.741616496238377998e+00,-9.569360827063964070e-01,-9.569360827063964070e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.870808248119188999e+00,-1.870808248119188999e+00,-1.913872165412792814e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.725315841746747569e+00,-9.542193069577912246e-01,-9.542193069577912246e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.862657920873373785e+00,-1.862657920873373785e+00,-1.908438613915582449e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.724722574509128137e+00,-9.541204290848547265e-01,-9.541204290848547265e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.862361287254564068e+00,-1.862361287254564068e+00,-1.908240858169709453e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.722102470834789845e+00,-9.536837451391316778e-01,-9.536837451391316778e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.861051235417394922e+00,-1.861051235417394922e+00,-1.907367490278263356e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.700023368117618450e+00,-9.500038946862697786e-01,-9.500038946862697786e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.850011684058809225e+00,-1.850011684058809225e+00,-1.900007789372539557e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.695088112288900106e+00,-9.491813520481500177e-01,-9.491813520481500177e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.847544056144450053e+00,-1.847544056144450053e+00,-1.898362704096300035e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.693244430561250624e+00,-9.488740717602084374e-01,-9.488740717602084374e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.846622215280625312e+00,-1.846622215280625312e+00,-1.897748143520416875e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.657962662677138432e+00,-9.429937771128563684e-01,-9.429937771128563684e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.828981331338569216e+00,-1.828981331338569216e+00,-1.885987554225712737e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.654007641064829226e+00,-9.423346068441381673e-01,-9.423346068441381673e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.827003820532414613e+00,-1.827003820532414613e+00,-1.884669213688276335e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.635756223692909295e+00,-9.392927039488181418e-01,-9.392927039488181418e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.817878111846454647e+00,-1.817878111846454647e+00,-1.878585407897636284e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.631425403061260937e+00,-9.385709005102101932e-01,-9.385709005102101932e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.815712701530630468e+00,-1.815712701530630468e+00,-1.877141801020420386e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.614141268838645171e+00,-9.356902114731074915e-01,-9.356902114731074915e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.807070634419322586e+00,-1.807070634419322586e+00,-1.871380422946214983e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.604331661160563804e+00,-9.340552768600939304e-01,-9.340552768600939304e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.802165830580281902e+00,-1.802165830580281902e+00,-1.868110553720187861e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.599802385648055658e+00,-9.333003976080092023e-01,-9.333003976080092023e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.799901192824027829e+00,-1.799901192824027829e+00,-1.866600795216018405e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.592526933402571565e+00,-9.320878222337619645e-01,-9.320878222337619645e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.796263466701285783e+00,-1.796263466701285783e+00,-1.864175644467523929e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.585246223407735577e+00,-9.308743705679559666e-01,-9.308743705679559666e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.792623111703867789e+00,-1.792623111703867789e+00,-1.861748741135911933e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.574639666690437423e+00,-9.291066111150729778e-01,-9.291066111150729778e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.787319833345218711e+00,-1.787319833345218711e+00,-1.858213222230145956e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.571562283697898188e+00,-9.285937139496497350e-01,-9.285937139496497350e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.785781141848949094e+00,-1.785781141848949094e+00,-1.857187427899299470e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.563377270533726993e+00,-9.272295450889544988e-01,-9.272295450889544988e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.781688635266863496e+00,-1.781688635266863496e+00,-1.854459090177908998e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.556867922180706909e+00,-9.261446536967844478e-01,-9.261446536967844478e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.778433961090353455e+00,-1.778433961090353455e+00,-1.852289307393568896e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.555056047007615572e+00,-9.258426745012693360e-01,-9.258426745012693360e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.777528023503807786e+00,-1.777528023503807786e+00,-1.851685349002538672e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.551527144481729792e+00,-9.252545240802882986e-01,-9.252545240802882986e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.775763572240864896e+00,-1.775763572240864896e+00,-1.850509048160576597e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.540907673409620759e+00,-9.234846122349368303e-01,-9.234846122349368303e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.770453836704810380e+00,-1.770453836704810380e+00,-1.846969224469873661e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.523762859051509100e+00,-9.206271431752515166e-01,-9.206271431752515166e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.761881429525754550e+00,-1.761881429525754550e+00,-1.841254286350503033e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.515674551524414770e+00,-9.192790919207357581e-01,-9.192790919207357581e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.757837275762207385e+00,-1.757837275762207385e+00,-1.838558183841471516e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.509548359518279703e+00,-9.182580599197133209e-01,-9.182580599197133209e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.754774179759139852e+00,-1.754774179759139852e+00,-1.836516119839426642e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.504072691806095818e+00,-9.173454486343493031e-01,-9.173454486343493031e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.752036345903047909e+00,-1.752036345903047909e+00,-1.834690897268698606e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.491707515567259890e+00,-9.152845859278766483e-01,-9.152845859278766483e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.745853757783629945e+00,-1.745853757783629945e+00,-1.830569171855753297e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.477807679631721882e+00,-9.129679466052869063e-01,-9.129679466052869063e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.738903839815860941e+00,-1.738903839815860941e+00,-1.825935893210573813e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.471002427707633231e+00,-9.118337379512722052e-01,-9.118337379512722052e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.735501213853816616e+00,-1.735501213853816616e+00,-1.823667475902544410e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.470065832835994790e+00,-9.116776388059990577e-01,-9.116776388059990577e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.735032916417997395e+00,-1.735032916417997395e+00,-1.823355277611998115e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.467925616591222227e+00,-9.113209360985370378e-01,-9.113209360985370378e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.733962808295611113e+00,-1.733962808295611113e+00,-1.822641872197074076e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.448421792588201917e+00,-9.080702987647003566e-01,-9.080702987647003566e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.724210896294100959e+00,-1.724210896294100959e+00,-1.816140597529400713e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.440997473465970735e+00,-9.068329122443283818e-01,-9.068329122443283818e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.720498736732985368e+00,-1.720498736732985368e+00,-1.813665824488656764e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.439173303098520762e+00,-9.065288838497533863e-01,-9.065288838497533863e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.719586651549260381e+00,-1.719586651549260381e+00,-1.813057767699506773e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.436833241632538893e+00,-9.061388736054231119e-01,-9.061388736054231119e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.718416620816269447e+00,-1.718416620816269447e+00,-1.812277747210846224e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.434185455985974578e+00,-9.056975759976624296e-01,-9.056975759976624296e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.717092727992987289e+00,-1.717092727992987289e+00,-1.811395151995324859e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.421367941493065779e+00,-9.035613235821775557e-01,-9.035613235821775557e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.710683970746532889e+00,-1.710683970746532889e+00,-1.807122647164355111e+00 -0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,0.000000000000000000e+00,1.000000000000000000e+00,1.000000000000000000e+00,0.000000000000000000e+00,-3.401255409798296103e+00,-9.002092349663826099e-01,-9.002092349663826099e-01,2.000000000000000000e+00,0.000000000000000000e+00,-1.700627704899148052e+00,-1.700627704899148052e+00,-1.800418469932765220e+00 diff --git a/benchmarks/SDP_Quadratic_Stability_6d/run.py b/benchmarks/SDP_Quadratic_Stability_6d/run.py index 6fea3ef..38eec9c 100644 --- a/benchmarks/SDP_Quadratic_Stability_6d/run.py +++ b/benchmarks/SDP_Quadratic_Stability_6d/run.py @@ -140,9 +140,9 @@ def main(): print(f"Optimal Cost: {cost:.6f}") print(f"Complexity (k): {k}") if degeneracy: - print(f"Risk Bounds (99%): [unreliable, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [unreliable, {eps_upper:.4f}]") else: - print(f"Risk Bounds (99%): [{eps_lower:.4f}, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [{eps_lower:.4f}, {eps_upper:.4f}]") print("-" * 60) print() diff --git a/benchmarks/SDP_covariance_wine_15d/run.py b/benchmarks/SDP_covariance_wine_15d/run.py index 30199fa..dc947e0 100644 --- a/benchmarks/SDP_covariance_wine_15d/run.py +++ b/benchmarks/SDP_covariance_wine_15d/run.py @@ -197,9 +197,9 @@ def main(): print(f"Objective Value: {cost:.4f}") print(f"Complexity (k): {k} support constraints") if degeneracy: - print(f"Risk Bounds (99%): [unreliable, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [unreliable, {eps_upper:.4f}]") else: - print(f"Risk Bounds (99%): [{eps_lower:.4f}, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [{eps_lower:.4f}, {eps_upper:.4f}]") print("-" * 60) print() diff --git a/benchmarks/SDP_ellipsoid_enclosure_15d/run.py b/benchmarks/SDP_ellipsoid_enclosure_15d/run.py index 167e7ea..7d81602 100644 --- a/benchmarks/SDP_ellipsoid_enclosure_15d/run.py +++ b/benchmarks/SDP_ellipsoid_enclosure_15d/run.py @@ -212,9 +212,9 @@ def main(): print(f"Objective Value: {cost:.4f} (= -trace(P))") print(f"Complexity (k): {k} support constraints") if degeneracy: - print(f"Risk Bounds (99%): [unreliable, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [unreliable, {eps_upper:.4f}]") else: - print(f"Risk Bounds (99%): [{eps_lower:.4f}, {eps_upper:.4f}]") + print(f"Risk Bounds ({(1 - beta) * 100:g}%): [{eps_lower:.4f}, {eps_upper:.4f}]") print("-" * 60) print() diff --git a/tests/test_numeric_mode.py b/tests/test_numeric_mode.py index 9620422..73794d7 100644 --- a/tests/test_numeric_mode.py +++ b/tests/test_numeric_mode.py @@ -387,9 +387,9 @@ def test_detect_program_sdp(client): def test_detect_program_sdp_numeric(client): """Detect Program with numeric SDP benchmark loads and matches symbolic results.""" # Load numeric benchmark - with open("benchmarks/SDP_LPV_stability_3d_numeric/data/program_symbolic.json") as f: + with open("benchmarks/SDP_LPV_stability_3d/data/program_numeric.json") as f: num_bm = json.load(f) - num_scenarios = np.loadtxt("benchmarks/SDP_LPV_stability_3d_numeric/data/scenarios.csv", + num_scenarios = np.loadtxt("benchmarks/SDP_LPV_stability_3d/data/scenarios_numeric.csv", delimiter=",", ndmin=2) num_csv = _to_csv_bytes(num_scenarios) From 4a0a8aa45630abdd6eba2b28791514b7140a5413 Mon Sep 17 00:00:00 2001 From: Kiguli Date: Mon, 5 Oct 2026 22:13:44 -0500 Subject: [PATCH 14/14] Portfolio CVaR: use rho = 1/((1-0.95)N) = 0.015936 in the cost vector The program files still embedded rho = 0.04 (from an earlier N = 500 setup) in the cost vector, while parameters.txt, the README and the paper use 0.015936 for N = 1255. The published solution (weights, alpha, k = 3, risk bounds [0, 0.0203]) is also optimal with rho = 0.015936, so the results are unchanged; only the objective value in metrics.json and the README, which includes rho * sum(zeta), becomes 0.051337 (was 0.053356). Co-Authored-By: Claude Opus 5.5 --- benchmarks/LP_portfolio_cvar_13d/README.md | 2 +- .../LP_portfolio_cvar_13d/data/program_numeric.json | 8 ++++---- .../LP_portfolio_cvar_13d/data/program_symbolic.json | 8 ++++---- benchmarks/LP_portfolio_cvar_13d/generate.py | 2 +- benchmarks/LP_portfolio_cvar_13d/results/metrics.json | 2 +- benchmarks/LP_portfolio_cvar_13d/run.py | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/benchmarks/LP_portfolio_cvar_13d/README.md b/benchmarks/LP_portfolio_cvar_13d/README.md index 30e3088..68ab781 100644 --- a/benchmarks/LP_portfolio_cvar_13d/README.md +++ b/benchmarks/LP_portfolio_cvar_13d/README.md @@ -92,6 +92,6 @@ python plot.py ### Expected Results -- Optimal cost: 0.05335645682574842 +- Optimal cost: 0.05133720473689373 - Complexity k: 3 - Risk bounds: [0.0, 0.020289284798068057] diff --git a/benchmarks/LP_portfolio_cvar_13d/data/program_numeric.json b/benchmarks/LP_portfolio_cvar_13d/data/program_numeric.json index 3e14a6f..05d6a88 100644 --- a/benchmarks/LP_portfolio_cvar_13d/data/program_numeric.json +++ b/benchmarks/LP_portfolio_cvar_13d/data/program_numeric.json @@ -29,16 +29,16 @@ "1" ], [ - "0.04" + "0.015936" ], [ - "0.04" + "0.015936" ], [ - "0.04" + "0.015936" ], [ - "0.04" + "0.015936" ] ], "G": [ diff --git a/benchmarks/LP_portfolio_cvar_13d/data/program_symbolic.json b/benchmarks/LP_portfolio_cvar_13d/data/program_symbolic.json index 4288b8a..8df7a75 100644 --- a/benchmarks/LP_portfolio_cvar_13d/data/program_symbolic.json +++ b/benchmarks/LP_portfolio_cvar_13d/data/program_symbolic.json @@ -105,16 +105,16 @@ "1" ], [ - "0.04" + "0.015936" ], [ - "0.04" + "0.015936" ], [ - "0.04" + "0.015936" ], [ - "0.04" + "0.015936" ] ], "G": [ diff --git a/benchmarks/LP_portfolio_cvar_13d/generate.py b/benchmarks/LP_portfolio_cvar_13d/generate.py index bbc241d..0221c34 100644 --- a/benchmarks/LP_portfolio_cvar_13d/generate.py +++ b/benchmarks/LP_portfolio_cvar_13d/generate.py @@ -188,7 +188,7 @@ def save_constraint_files(data_dir, mean_returns, n_scenarios): With rho = 1/((1-beta)*N), minimizing alpha + rho*sum(zeta) approximates CVaR. """ params = load_parameters() - rho = params.get('rho', 0.04) + rho = params.get('rho', 0.015936) n_vars = N_ASSETS + 1 # 8 weights + 1 alpha (VaR threshold) diff --git a/benchmarks/LP_portfolio_cvar_13d/results/metrics.json b/benchmarks/LP_portfolio_cvar_13d/results/metrics.json index f3ef9b3..4d37efa 100644 --- a/benchmarks/LP_portfolio_cvar_13d/results/metrics.json +++ b/benchmarks/LP_portfolio_cvar_13d/results/metrics.json @@ -16,7 +16,7 @@ "alternatives_allocation": 0.449999855590255, "mean_return": 0.0003031247620507457, "std_return": 0.005559309001023381, - "objective_value": 0.05335645682574842, + "objective_value": 0.05133720473689373, "N": 1255, "k": 3, "eps_lower": 0.0, diff --git a/benchmarks/LP_portfolio_cvar_13d/run.py b/benchmarks/LP_portfolio_cvar_13d/run.py index 1d642fa..a7a11d4 100644 --- a/benchmarks/LP_portfolio_cvar_13d/run.py +++ b/benchmarks/LP_portfolio_cvar_13d/run.py @@ -123,7 +123,7 @@ def main(): key, val = line.split('=', 1) params[key.strip()] = float(val.split('#')[0].strip()) - rho = params.get('rho', 0.04) + rho = params.get('rho', 0.015936) tau = params.get('tau', 0.0) beta = 1.0 - params.get('confidence', 0.999999)