Python中的约束一般优化

2024-05-29 11:02:14 发布

您现在位置:Python中文网/ 问答频道 /正文

Scipy有一个问题:所有支持约束的优化器似乎都是应用于数学方程和可微问题的优化器的特定子集

假设有人想要针对随机函数优化混合问题、结构问题或配置

(Universal Superset of All Problems) Mixed problem: 
  -- Piece-Wise Smooth
  -- Piece-Wise Square
  -- Spikes
  -- Squares/Plateaus
  -- Piecewise Differentiable
  -- Piecewise Non-Differentiable
  -- Can be Hairy (as versus spiky)

Structural Problem:
  -- Squares/Plateaus
  -- Spikes
  -- Non-Differentiable

Stochastic Function
  -- I.e. Hairy Valleys

一个人可能只需要一个“足够”的答案,即“尽可能最优”,保证在可配置的时间内“探索空间”

这里唯一的算法是模拟退火算法家族,该算法唯一有效的SciPy版本是“双重退火”方法

然而,Sci-Py中的双重退火方法只接受边界。我需要它来接受约束。老实说,简单、正常、钝头的常规退火是必需的……而不是退火结合多维曲率测试(Hessian)。这将锁定最常见问题类型的解决方案

但是,就目前而言:如何将约束(而不是简单的边界)传递给SciPy模拟退火alg,或者是否有另一个具有模拟退火函数的库可以实现这一目标


Tags: 方法函数算法piecescipynonsquares双重

热门问题