Optimal Inverse Function Creation

版本 1.0.0.0 (180.6 KB) 作者: Alan Jennings
Creates continuous, optimal inverse-functions: given a desired output, finds the optimal input
888.0 次下载
更新时间 2013/1/16

查看许可证

Given an output function f(x) and a cost function J(x) (and gradients), optimal inverse functions are found which produce the input x* with the lowest cost based on the current desired output. Output and cost functions produce a scalar. The method is demonstrated on 2D problems (for convenient visualization). With 2D plots removed (all but Figure 41), the code can run higher dimension systems also.

Inverse functions are guaranteed to be continuous, so inputs will be continuous if the desired output changes in a continuous fashion. Continuity of input is typically a required condition for real-time systems, so inverse functions can be paired with a sensor for online optimization of multiple-input systems. The inverse function significantly reduces an operator’s cognitive load (or complexity of higher level planner) from many inputs to simply setting the desired output, with no loss of optimality.

Because each point on the inverse function is locally optimal, multiple inverse functions can be created, possibly with overlapping domain. This allows selection of fundamentally different solutions which can be chosen based on situational constraints (such as temporary blockades) or better performance based on an expected distribution of outputs. Since there may not be one ‘best’ inverse function, they are all found and the user can apply their God-given judgment.

Algorithm is based on constrained gradient descent with a population of agents. Once a constrained optimal point is found, the output is changed and a new optimal point is found. The cluster of connected optimal points is interpolated in the output to produce intermediate output values. Method is similar to “Population based optimization for variable operating points,” IEEE CEC 2011, http://dx.doi.org/10.1109/CEC.2011.5949611, but features the addition of the Armijo rule to ensure convergence.

A problem is specified in a structure which is passed to the optimization function with an initial population. Inverse functions are returned in a cell array.
Inverse functions = InvFun(Initial Population, Problem Structure)
The inverse function is evaluated by 1-dimensional, shape-preserving spline interpolation:
x* = pchip( Inverse functions {k}.y, Inverse functions {k}.x, Desired y)
This is demonstrated in InvFun_Test.m, as shown by the published results accompanying the submission.

From the dependency report, no toolboxes are needed. I am not aware of any backward compatibility issues (not sure when subfunctions were first allowed, but that would be my first guess at an issue).

引用格式

Alan Jennings (2024). Optimal Inverse Function Creation (https://www.mathworks.com/matlabcentral/fileexchange/39878-optimal-inverse-function-creation), MATLAB Central File Exchange. 检索时间: .

MATLAB 版本兼容性
创建方式 R2012a
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Nonlinear Optimization 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

html/

版本 已发布 发行说明
1.0.0.0