some new features
This commit is contained in:
132
.venv/lib/python3.12/site-packages/scipy/_lib/cobyqa/settings.py
Normal file
132
.venv/lib/python3.12/site-packages/scipy/_lib/cobyqa/settings.py
Normal file
@ -0,0 +1,132 @@
|
||||
import sys
|
||||
from enum import Enum
|
||||
|
||||
import numpy as np
|
||||
|
||||
|
||||
# Exit status.
|
||||
class ExitStatus(Enum):
|
||||
"""
|
||||
Exit statuses.
|
||||
"""
|
||||
|
||||
RADIUS_SUCCESS = 0
|
||||
TARGET_SUCCESS = 1
|
||||
FIXED_SUCCESS = 2
|
||||
CALLBACK_SUCCESS = 3
|
||||
FEASIBLE_SUCCESS = 4
|
||||
MAX_EVAL_WARNING = 5
|
||||
MAX_ITER_WARNING = 6
|
||||
INFEASIBLE_ERROR = -1
|
||||
LINALG_ERROR = -2
|
||||
|
||||
|
||||
class Options(str, Enum):
|
||||
"""
|
||||
Options.
|
||||
"""
|
||||
|
||||
DEBUG = "debug"
|
||||
FEASIBILITY_TOL = "feasibility_tol"
|
||||
FILTER_SIZE = "filter_size"
|
||||
HISTORY_SIZE = "history_size"
|
||||
MAX_EVAL = "maxfev"
|
||||
MAX_ITER = "maxiter"
|
||||
NPT = "nb_points"
|
||||
RHOBEG = "radius_init"
|
||||
RHOEND = "radius_final"
|
||||
SCALE = "scale"
|
||||
STORE_HISTORY = "store_history"
|
||||
TARGET = "target"
|
||||
VERBOSE = "disp"
|
||||
|
||||
|
||||
class Constants(str, Enum):
|
||||
"""
|
||||
Constants.
|
||||
"""
|
||||
|
||||
DECREASE_RADIUS_FACTOR = "decrease_radius_factor"
|
||||
INCREASE_RADIUS_FACTOR = "increase_radius_factor"
|
||||
INCREASE_RADIUS_THRESHOLD = "increase_radius_threshold"
|
||||
DECREASE_RADIUS_THRESHOLD = "decrease_radius_threshold"
|
||||
DECREASE_RESOLUTION_FACTOR = "decrease_resolution_factor"
|
||||
LARGE_RESOLUTION_THRESHOLD = "large_resolution_threshold"
|
||||
MODERATE_RESOLUTION_THRESHOLD = "moderate_resolution_threshold"
|
||||
LOW_RATIO = "low_ratio"
|
||||
HIGH_RATIO = "high_ratio"
|
||||
VERY_LOW_RATIO = "very_low_ratio"
|
||||
PENALTY_INCREASE_THRESHOLD = "penalty_increase_threshold"
|
||||
PENALTY_INCREASE_FACTOR = "penalty_increase_factor"
|
||||
SHORT_STEP_THRESHOLD = "short_step_threshold"
|
||||
LOW_RADIUS_FACTOR = "low_radius_factor"
|
||||
BYRD_OMOJOKUN_FACTOR = "byrd_omojokun_factor"
|
||||
THRESHOLD_RATIO_CONSTRAINTS = "threshold_ratio_constraints"
|
||||
LARGE_SHIFT_FACTOR = "large_shift_factor"
|
||||
LARGE_GRADIENT_FACTOR = "large_gradient_factor"
|
||||
RESOLUTION_FACTOR = "resolution_factor"
|
||||
IMPROVE_TCG = "improve_tcg"
|
||||
|
||||
|
||||
# Default options.
|
||||
DEFAULT_OPTIONS = {
|
||||
Options.DEBUG.value: False,
|
||||
Options.FEASIBILITY_TOL.value: np.sqrt(np.finfo(float).eps),
|
||||
Options.FILTER_SIZE.value: sys.maxsize,
|
||||
Options.HISTORY_SIZE.value: sys.maxsize,
|
||||
Options.MAX_EVAL.value: lambda n: 500 * n,
|
||||
Options.MAX_ITER.value: lambda n: 1000 * n,
|
||||
Options.NPT.value: lambda n: 2 * n + 1,
|
||||
Options.RHOBEG.value: 1.0,
|
||||
Options.RHOEND.value: 1e-6,
|
||||
Options.SCALE.value: False,
|
||||
Options.STORE_HISTORY.value: False,
|
||||
Options.TARGET.value: -np.inf,
|
||||
Options.VERBOSE.value: False,
|
||||
}
|
||||
|
||||
# Default constants.
|
||||
DEFAULT_CONSTANTS = {
|
||||
Constants.DECREASE_RADIUS_FACTOR.value: 0.5,
|
||||
Constants.INCREASE_RADIUS_FACTOR.value: np.sqrt(2.0),
|
||||
Constants.INCREASE_RADIUS_THRESHOLD.value: 2.0,
|
||||
Constants.DECREASE_RADIUS_THRESHOLD.value: 1.4,
|
||||
Constants.DECREASE_RESOLUTION_FACTOR.value: 0.1,
|
||||
Constants.LARGE_RESOLUTION_THRESHOLD.value: 250.0,
|
||||
Constants.MODERATE_RESOLUTION_THRESHOLD.value: 16.0,
|
||||
Constants.LOW_RATIO.value: 0.1,
|
||||
Constants.HIGH_RATIO.value: 0.7,
|
||||
Constants.VERY_LOW_RATIO.value: 0.01,
|
||||
Constants.PENALTY_INCREASE_THRESHOLD.value: 1.5,
|
||||
Constants.PENALTY_INCREASE_FACTOR.value: 2.0,
|
||||
Constants.SHORT_STEP_THRESHOLD.value: 0.5,
|
||||
Constants.LOW_RADIUS_FACTOR.value: 0.1,
|
||||
Constants.BYRD_OMOJOKUN_FACTOR.value: 0.8,
|
||||
Constants.THRESHOLD_RATIO_CONSTRAINTS.value: 2.0,
|
||||
Constants.LARGE_SHIFT_FACTOR.value: 10.0,
|
||||
Constants.LARGE_GRADIENT_FACTOR.value: 10.0,
|
||||
Constants.RESOLUTION_FACTOR.value: 2.0,
|
||||
Constants.IMPROVE_TCG.value: True,
|
||||
}
|
||||
|
||||
# Printing options.
|
||||
PRINT_OPTIONS = {
|
||||
"threshold": 6,
|
||||
"edgeitems": 2,
|
||||
"linewidth": sys.maxsize,
|
||||
"formatter": {
|
||||
"float_kind": lambda x: np.format_float_scientific(
|
||||
x,
|
||||
precision=3,
|
||||
unique=False,
|
||||
pad_left=2,
|
||||
)
|
||||
},
|
||||
}
|
||||
|
||||
# Constants.
|
||||
BARRIER = 2.0 ** min(
|
||||
100,
|
||||
np.finfo(float).maxexp // 2,
|
||||
-np.finfo(float).minexp // 2,
|
||||
)
|
||||
Reference in New Issue
Block a user