There are many different optimization algorithms and methods. The goal of an optimization algorithm is to analyze the response of a system by varying a set of inputs (“factors”), and determining the set of factors which yields the “best” responses. To a certain extent the choice of what method to employ depends on the system being optimized. There is no one “best” method, and therefore it is essential to have several in your toolbox to use on various problems.
In most cases the input factors and responses are subject to constraints. For example, determining the optimum route and speed to fly a plane is subject to constraints such as air traffic restrictions, fuel capacity, weather, and airplane structural limitations. Optimizing the operations of a manufacturing plant is subject to constraints such as environmental regulations, safety limits of machinery, and raw materials costs. How easy it is to incorporate constraints is one criteria to consider when choosing an optimization algorithm.
This paper describes the Sequential Simplex Optimization algorithm, how it works, some of the issues to keep in mind when considering using it, etc. I proposed using Simplex optimization for Space Shuttle Flight Design and Dynamics (FDD) and I later used Simplex to optimize the fuel flow for the Interim Control Module (ICM) Propulsion Subsystem simulator/trainer for the International Space Station. The ICM system is diagrammed above. The station problem was rather large (26-dimensional) and there were many challenges in finding the solution. I wrote the algorithm, including constraint and vehicle simulation execution, in Python. It required some trial-and-error testing and adjusting, but in the end it worked.