+ All Categories
Home > Documents > Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic...

Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic...

Date post: 18-Apr-2020
Category:
Upload: others
View: 9 times
Download: 0 times
Share this document with a friend
86
NASA/TM—2016–216632 Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation Problems Jane Anne Leyland Ames Research Center Moffett Field, California April 2016 https://ntrs.nasa.gov/search.jsp?R=20180008674 2020-04-20T04:52:20+00:00Z
Transcript
Page 1: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

NASA/TM—2016–216632

Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation Problems Jane Anne Leyland Ames Research Center Moffett Field, California

April 2016

https://ntrs.nasa.gov/search.jsp?R=20180008674 2020-04-20T04:52:20+00:00Z

Page 2: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

NASA STI Program ... in Profile

Since its founding, NASA has been dedicated to the advancement of aeronautics and space science. The NASA scientific and technical information (STI) program plays a key part in helping NASA maintain this important role. The NASA STI program operates under the auspices of the Agency Chief Information Officer. It collects, organizes, provides for archiving, and disseminates NASA’s STI. The NASA STI program provides access to the NTRS Registered and its public interface, the NASA Technical Reports Server, thus providing one of the largest collections of aeronautical and space science STI in the world. Results are published in both non-NASA channels and by NASA in the NASA STI Report Series, which includes the following report types: • TECHNICAL PUBLICATION. Reports of

completed research or a major significant phase of research that present the results of NASA Programs and include extensive data or theoretical analysis. Includes compilations of significant scientific and technical data and information deemed to be of continuing reference value. NASA counterpart of peer-reviewed formal professional papers but has less stringent limitations on manuscript length and extent of graphic presentations.

• TECHNICAL MEMORANDUM.

Scientific and technical findings that are preliminary or of specialized interest, e.g., quick release reports, working papers, and bibliographies that contain minimal annotation. Does not contain extensive analysis.

• CONTRACTOR REPORT. Scientific and

technical findings by NASA-sponsored contractors and grantees.

• CONFERENCE PUBLICATION. Collected papers from scientific and technical conferences, symposia, seminars, or other meetings sponsored or co-sponsored by NASA.

• SPECIAL PUBLICATION. Scientific,

technical, or historical information from NASA programs, projects, and missions, often concerned with subjects having substantial public interest.

• TECHNICAL TRANSLATION.

English-language translations of foreign scientific and technical material pertinent to NASA’s mission.

Specialized services also include organizing and publishing research results, distributing specialized research announcements and feeds, providing information desk and personal search support, and enabling data exchange services. For more information about the NASA STI program, see the following: • Access the NASA STI program home

page at http://www.sti.nasa.gov • E-mail your question to

[email protected] • Phone the NASA STI Information Desk

at 757-864-9658 • Write to:

NASA STI Information Desk Mail Stop 148 NASA Langley Research Center Hampton, VA 23681-2199

This page is required and contains approved text that cannot be changed.

Page 3: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

NASA/TM—2016–216632

Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation Problems Jane Anne Leyland Ames Research Center Moffett Field, California

National Aeronautics and Space Administration Ames Research Center Moffett Field, CA 94035-1000

April 2016

Page 4: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

Available from:

NASA STI Support Services National Technical Information Service Mail Stop 148 5301 Shawnee Road NASA Langley Research Center Alexandria, VA 22312 Hampton, VA 23681-2199 [email protected] 757-864-9658 703-605-6000

This report is also available in electronic form at

http://ntrs.nasa.gov

Page 5: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

iii

Table of Contents

Nomenclature ................................................................................................................................ v

Summary ....................................................................................................................................... 1

1.0 Introduction .......................................................................................................................... 2

2.0 Technical .............................................................................................................................. 3

2.1 General Non-Linear Programming Problem ......................................................................... 5

2.2 Specific Problems Solved as Part of This Research ............................................................ 6

2.2.1 (6 x 4) T-Matrix NLP Control Problems .................................................................... 7

2.2.2 (6 x 6) T-Matrix NLP Control Problems .................................................................. 10

2.2.3 (24 x 8) T-Matrix NLP Control Problems ................................................................ 12

2.2.4 (90 x 30) T-Matrix NLP Control Problems .............................................................. 14

2.2.5 (90 x 60) T-Matrix NLP Control Problems .............................................................. 17

2.3 Synthetic Data .................................................................................................................... 20

2.3.1 Definition of the Random Number Generator Function RAN(SEED) ..................... 22

2.3.2 Determination of the Synthetic T-Matrix, the “Actual” Control 0θ – Vector,

and the “Actual” Measurement – Vector ........................................................... 23

2.4 The Regulator Problem ...................................................................................................... 25

3.0 Results and Conclusions .................................................................................................... 27

4.0 References ......................................................................................................................... 29

Page 6: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

iv

Table of Contents (cont.)

Appendix A: NLPQLP: A Fortran Implementation of a Sequential Quadratic Programming

Algorithm with Distributed and Non-Monotone Line Search – User’s Guide,

Version 3.1

Abstract ................................................................................................................................ A-1

1 Introduction ......................................................................................................................... A-2

2 Sequential Quadratic Programming Methods ..................................................................... A-7

Algorithm 2.1 ..................................................................................................................... A-10

Algorithm 2.2 ..................................................................................................................... A-11

3 Performance Evaluation .................................................................................................... A-14

3.1 The Test Environment .............................................................................................. A-14

3.2 Testing Distributed Function Calls ............................................................................ A-17

3.3 Function Evaluations and Gradient Approximations by a Difference

Formulae Under Random Noise ............................................................................... A-18

3.4 Testing Scaled Restarts ........................................................................................... A-19

4 Program Documentation ................................................................................................... A-22

5 Examples ........................................................................................................................ A-29

6 Conclusions....................................................................................................................... A-35

References ........................................................................................................................... A-36

Separate Volumes:

Appendix B: Cases Run on the Hewlett-Packard Alpha Mainframe Computer

Appendix C: Cases Run on the Mac Pro Desktop Computer

Page 7: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

v

Nomenclature

Input coefficient for the first term in the equation that defines .

Input coefficient for the second term in the equation that defines .

Input coefficient for the first term in the equation that defines pInitial

θ .

Input coefficient for the second term in the equation that defines pInitial

θ .

Input coefficient for the first term in the equation that defines .

Input coefficient for the second term in the equation that defines .

g Z θ( )[ ] Scalar performance index function that defines the performance index J .

g Z θ( )[ ] is a function of the plant output measurement Ζ – vector, which is a

function of the control θ – vector. In general, these functions can be non-linear.

Set of all .

Iθ Set of all .

IMSL International Mathematics and Statistics Library, Inc.—a commercial collection of software libraries of numerical analysis functionality that are implemented in C, Java, C#.NET, and Fortran computer programming languages.

Input seed argument for the k − th call to the random number generator function

RAN(•) in the first term in the equation that defines , and updated

automatically on completion of the generation of the random number. This argument should initially be set to a large odd-integer value.

Input seed argument for the k − th call to the random number generator function

RAN(•) in the first term in the equation that defines pInitial

θ , and updated

automatically on completion of the generation of the random number. This argument should initially be set to a large odd-integer value.

Page 8: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

vi

Nomenclature (cont.)

Input seed argument for the k − th call to the random number generator function

RAN(•) in the first term in the equation that defines , and updated

automatically on completion of the generation of the random number. This argument should initially be set to a large odd-integer value.

J Scalar performance index that is defined by g Z θ( )[ ]. In general, this function can

be non-linear. For the problems considered in this research, J is a scalar performance index that is a quadratic function of the plant output measurement vector (i.e., the Ζ – vector). In this case, Ζ is a linear function of the control θ – vector, and J is a quadratic function of the control θ – vector.

Input seed argument for the l − th call to the random number generator function

RAN(•) in the second term in the equation that defines , and updated

automatically on completion of the generation of the random number. This argument should initially be set to a large odd-integer value.

Input seed argument for the l − th call to the random number generator function

RAN(•) in the second term in the equation that defines pInitial

θ , and updated

automatically on completion of the generation of the random number. This argument should initially be set to a large odd-integer value.

Input seed argument for the l − th call to the random number generator function

RAN(•) in the second term in the equation that defines , and updated

automatically on completion of the generation of the random number. This argument should initially be set to a large odd-integer value.

k Index number for the input seed argument for calls to the random number

generator function RAN(•) in the first term in the equations that defines ,

pInitial

θ , and , where: .

l Index number for the input seed argument for calls to the random number

generator function RAN(•) in the second term in the equations that defines ,

pInitial

θ , and , where: .

Number of elements (dimension) in the Equality Constraint φ θ( ) _vector.

Page 9: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

vii

Nomenclature (cont.)

Number of elements (dimension) in the Inequality Constraint ψ θ( ) _vector.

.

Number of elements in the First Inequality Constraint 1ψ θ( ) _sub-vector.

Number of elements in the Second Inequality Constraint 2ψ θ( ) _sub-vector.

Number of elements (dimension) in the predicted measurement Ζ – vector.

Number of elements (dimension) in the control θ – vector.

NLP Non-Linear Programming algorithm.

NLPQLP Non-Linear Programming (NLP) algorithm that employs the Sequential Quadratic Programming (SQP) algorithm as its core algorithm.

p Index number for the control θ – vector elements.

q Index number for the predicted measurement Ζ – vector elements.

r Index number for the Equality Constraint φ θ( ) _vector elements.

Uniform Random Number Distribution Function that yields a uniformly random

real number ∈ 0, 1[ ).

s Index number for the Inequality Constraint ψ θ( ) _vector elements.

SQP Sequential Quadratic Programming (SQP) algorithm.

System or transfer matrix either defined by direct input or synthetically

determined.

The q, p( ) − th element of the system or transfer matrix.

WZ Diagonal weighting matrix in the performance index. The default

setting that is the identity matrix; can be redefined by input.

Page 10: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

viii

Nomenclature (cont.)

Wθ Diagonal weighting matrix in the θ term of the regulator performance

index J . The default setting that is the null matrix; can be redefined by input.

Wθ• Diagonal weighting matrix in the θ• term of the regulator performance

index J . The default setting that is the null matrix; can be redefined by input.

Z Equals Z θ( ) and is used when the omission of the explicit dependence on the

control θ – vector does not present any confusion, ambiguity, or vagueness.

Z θ( ) Predicted measurement Ζ – vector evaluated during the optimisation or

regulator process and is a function of the control θ – vector. In general, this function can be non-linear. For the problems analysed in this research, Z θ( ) is a linear function of the control θ – vector.

Actual measurement Ζ – vector that would normally be evaluated during

the previous duty cycle or at a reference epoch time. is either directly input or

synthetically determined.

Zq The q − th element of the predicted measurement Ζ – vector.

Random component of the synthetically determined actual measurement

.

Random component of the q − th element of the synthetically determined actual

measurement .

ε Input small value constant selected to prevent 0Initialθ from being identical on a

bound (i.e., the least upper bound [l.u.b.] or the greatest lower bound [g.l.b.]).

θ Control θ – vector .

θ• Time rate of change of the control θ – vector .

0θ Solution θSol – vector that would normally be evaluated during the

previous duty cycle or at a reference epoch time. 0θ is either directly input or

synthetically determined.

Page 11: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

ix

Nomenclature (cont.)

Least upper bound (l.u.b.) for the p − th element of the control θ – vector

.

Greatest lower bound (g.l.b.) for the p − th element of the control θ – vector

.

θp The p − th element of the control θ – vector .

θ•

p The p − th element of the time rate of change of the control θ – vector .

pInitial

θ The p − th element of the solution θSol – vector that would normally be

evaluated during the previous duty cycle or at a reference epoch time. 0θ is

synthetically determined.

Solθ Solution θSol – vector evaluated during the optimisation or regulator

process.

θSol p The p − th element of the solution control θSol – vector evaluated

during the optimisation or regulator process.

φ θ( ) Equality Constraint φ θ( ) _vector function; in general, can be

dependent on the θ – vector and be non-linear.

φr θ( ) The r − th element of the Equality Constraint φ θ( ) _vector function.

ψ θ( ) Complete Inequality Constraint ψ θ( ) _vector

function; in general, can be dependent on the θ – vector and be non-linear. ψ θ( )

is comprised of the two sub-vector functions 1ψ θ( ) and

2ψ θ( ). Specifically:

ψ θ( ) =1ψ θ( )2ψ θ( )

Page 12: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

x

Nomenclature (concluded)

1ψ θ( ) First Inequality Constraint 1ψ θ( ) _sub-vector function with elements

of the First Inequality Constraint Form.

2ψ θ( ) Second Inequality Constraint 2ψ θ( ) _sub-vector function with

elements of the Second Inequality Constraint Form.

ψs θ( ) The s − th element of the complete Inequality Constraint vector

ψ θ( ) _function.

Page 13: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

1

Summary Optimisation of a control vector, an aerodynamic surface design, or an aircraft configuration potentially offers significant performance enhancement to rotorcraft systems. These problems typically include various types of constraints. Previous research and analysis indicated that non-linear programming methods that solve a sequence of related quadratic-programming sub-problems could be used successfully to solve these problems. Accordingly, a licence for one of the latest versions of Professor Klaus Schittkowski’s very successful Sequential Quadratic Programming NLPQLP software was obtained and used to experiment with and analyse typical optimisation problems encountered in various rotorcraft wind tunnel and flight tests. Emphasis was directed toward obtaining efficiency, robustness, and speed in computation. The NLPQLP software was installed on both a mainframe computer and a desktop computer. Stand-alone main driver codes were developed to task the NLPQLP software to solve non-linear programming (NLP) problems. The required input data was synthesised to facilitate this analysis. Solution to the classic regulator problem was included to provide verification of the NLP solutions to the unconstrained optimisation problems. The mainframe computer was used to develop the driver codes and to experiment with the various models and tune the associated input. The desktop computer was used to refine the process and to develop software for laptop computers that can be used in austere test environments including wind tunnels. The problems solved with this analysis were of the type encountered in rotorcraft applications where there is a linear dependence (i.e., a T-Matrix plant model) of the measurement vector on the control vector. These problems ranged from a relatively simple, unconstrained 4-vector control to a relatively large, constrained 60-vector control problem. Five different control vector dimensions ranging from 4 to 60 were analysed, and solutions were obtained for each of these with no imposition of constraints, imposition of only equality constraints, imposition of only inequality constraints, and imposition of both equality and inequality constraints. The smaller 4-, 6-, and 8-dimension control vector problems are representative of actual rotorcraft control problems. The solutions to these problems were sufficiently fast to be included in real-time duty cycles. The larger 30- and 60-dimension control vector problems are representative of aerodynamic surface design or aircraft configuration problems and, although they were solved rapidly, they are more suitable to non-real-time design applications. Solutions were obtained for all problems considered, and verification of the solutions to all of the unconstrained problems was obtained by solving the regulator problem. Although tuning and some input adjustments were required to successfully solve the large constrained 60-vector control problems, the NLPQLP System proved to be an efficient and reliable method to solve these problems.

Page 14: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

2

1.0 Introduction Previous research on the feasibility and desirability of using a constrained optimisation technique to define the optimal control vector and plant model for rotorcraft was accomplished on a mainframe computer not part of actual wind tunnel and/or flight-test experiments. This research indicated that constrained optimisation methodology provides better controller performance in many cases compared to results obtained with the widely used solution to the regulator problem for this application (ref. 1), and would be useful in defining the optimal configuration and required constants for a non-linear neural-network plant model (refs. 2–5). The initial research (ref. 1) on the development, design, and use of optimal controllers, both open- and closed-loop, to optimise rotorcraft aeromechanical behaviour indicated that the general non-linear programming method coded as the NCONF/DNCONF subroutine system, which is available in the IMSL MATH/LIBRARY (ref. 6), worked very well for solving the required constrained optimisation problems and was significantly superior to methods previously used for solving problems of this type. This IMSL NCONF/DNCONF subroutine system, which dates back to 1989, was used successfully on subsequent research studies (refs. 2–5) and likewise worked very well for solving the required constrained optimisation problems. This IMSL NCONF/DNCONF subroutine system is based on the work by Schittkowski, Gill et al., Powell, and Stoer (refs. 7–13). This method solves the general non-linear programming problem by solving a sequence of related quadratic programming sub-problems. One advantage of this method is that quadratic programming problems can be solved efficiently. A very important property of quadratic programming problems is that if the quadratic coefficient matrix in the performance index is positive definite, the problem has a unique solution, which is, of course, the global solution. This means that the sequence of solutions to the quadratic programming sub-problems will converge to the global solution of the general problem in the limit providing that the quadratic coefficient matrix in the performance index remains positive definite in the process. To conduct a wind tunnel experiment, the optimisation code is installed on a computer within the wind tunnel or on a portable computer such as a laptop that could be brought into the wind tunnel. Research on available suitable optimisation codes revealed that Professor Klaus Schittkowski had revised and updated his sequential quadratic programming method, which is part of the IMSL MATH/LIBRARY, via several versions of the code that improved performance and eliminated errors, and that it was available by licence as a stand-alone code (i.e., not part of a library). NASA obtained a licence, and Version 3.1, dated February 2010, was installed on both the Mac Pro desktop computer and the Hewlett-Packard Alpha mainframe computer. The code that was installed on the Mac Pro desktop computer was transportable to a Mac laptop computer for use in the wind tunnel. Version 3.1 of the NLPQLP System (ref. 14 and Appendix A) was used for the study described herein. The linear global plant model, which linearly relates the measurement vector to the control vector and is widely used for rotorcraft aeromechanical behaviour studies, was assumed for the problems that were solved as part of this research. For this research, two options could be used to define the T-Matrix: (1) use actual test data to define these elements, or (2) synthetically

Page 15: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

3

define these elements using a uniformly distributed random function. The second option was used for the results presented herein. This method was computationally implemented by writing stand-alone main driver codes assuming the linear global plant model. These drivers included the widely used solution to the regulator problem, used for comparison purposes. These codes were written to solve several typical problems of rotorcraft aeromechanical behaviour and are specific to the dimension of the T-Matrix (i.e., the dimensions of the measurement vector and the control vector) and the computer (i.e., the Hewlett-Packard Alpha mainframe or the Mac Pro desktop) that the problem was run on. The very general non-linear programming problem that is solved by the NLPQLP System (ref. 14) is defined in section 2.1. The specific problems that were solved using the NLPQLP System for this study are defined in section 2.2. A description of the synthetic data generation process is presented in section 2.3, and the definition of, and solution to, the regulator problem are described in section 2.4. The (6 x 4), (6 x 6), and (24 x 8) T-Matrix non-linear programming (NLP) control problems are representative of actual rotorcraft control problems. The solutions to these problems were sufficiently fast to be included in real-time duty cycles. The (90 x 30) and (90 x 60) T-Matrix NLP problems are representative of aerodynamic surface design and/or aircraft configuration problems and, although they were solved rapidly, they are more suitable to non-real-time design applications. The results are shown in Appendix B and Appendix C, separate volumes of this report. Listings of the command (DCL) file code and the Fortran main driver code for the Hewlett-Packard Alpha mainframe computer, and the input and output for the four sub-problems that were part of the (6 x 4), (6 x 6), (24 x 8), (90 x 30), and (90 x 60) T-Matrix NLP control problems solved using the Hewlett-Packard Alpha mainframe computer, are presented in Appendix B. A listing of the Fortran main driver code for the Mac Pro desktop computer, and the input and output for the four sub-problems that were part of the (6 x 4), (6 x 6), (24 x 8), (90 x 30), and (90 x 60) T-Matrix NLP control problems solved using the Mac Pro desktop computer, are presented in Appendix C. 2.0 Technical This study documents the testing, experimentation, and evaluation of Version 3.1 of the NLPQLP System (ref. 14 and Appendix A) to ascertain its suitability to solve rotorcraft optimisation problems. This NLPQLP System is designed to solve a very general NLP problem by solving a sequence of related quadratic programming sub-problems. One advantage of this method is that quadratic programming problems can be solved efficiently. A very important property of quadratic programming problems is that if the quadratic coefficient matrix in the

Page 16: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

4

performance index is positive definite, then the problem has a unique solution, which is, of course, the global solution. This means that the sequence of solutions to the quadratic programming sub-problems will converge to the global solution of the general problem in the limit providing that the quadratic coefficient matrix in the performance index remains positive definite in the process. This very general NLP problem is described in section 2.1. The problems solved in this analysis are encountered in various rotorcraft applications where there is a linear dependence (i.e., a T-Matrix plant model) of the measurement vector (the measurement Ζ – vector) on the control vector (i.e., the control θ – vector). The general form of the T-Matrix NLP problems considered in this study is referred to herein as the General T-Matrix NLP control problem, and is defined in section 2.2. Specific (6 x 4) T-Matrix NLP control problems (see section 2.2.1), (6 x 6) T-Matrix NLP control problems (see section 2.2.2), (24 x 8) T-Matrix NLP control problems (see section 2.2.3), (90 x 30) T-Matrix NLP control problems (see section 2.2.4), and (90 x 60) T-Matrix NLP control problems (see section 2.2.5) were analysed and solved. Each of these problems had four sub-problems: (1) unconstrained optimisation, (2) optimisation with only equality constraints, (3) optimisation with only inequality constraints, and (4) optimisation with both equality constraints and inequality constraints. In an actual wind tunnel or flight test experiment or optimisation application, the required input would be the actual test data, which perhaps might be reformatted for computer compatibly. To expedite the testing, experimentation, and evaluation of the NLPQLP System, the input data was synthetically determined. This synthesis process is described in section 2.3 and its sub-sections. Finally, the classic regulator problem is solved as an appendix to the unconstrained optimisation NLP problems to provide a means to verify their solutions. The classic regulator problem is defined in section 2.4. In this study the NLPQLP System was coded in Fortran 77 and installed on both a Hewlett-Packard Alpha Server GS1280 mainframe computer with the Open VMS Version 8.2 Operating System and a Mac Pro desktop computer with the Mac OS X, Version 10.5.8 Operating System. The VMS FORTRAN Compiler was used to compile the code on the mainframe computer, and the G95 FORTRAN Compiler was used to compile the code on the Mac Pro desktop computer. It is noted that these codes will, in general, produce different numerical results for these computer systems when synthetic input data is generated because the random number generator function algorithms used for data synthesis are different for these computer systems. The codes for both the Hewlett-Packard Alpha mainframe computer and the Mac Pro desktop computer are stand-alone codes and do not require any special software libraries. Accordingly, the associated software and codes installed on the Mac Pro desktop computer should be transportable to a Mac laptop computer for use in the wind tunnel.

Page 17: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

5

2.1 General Non-Linear Programming Problem The general optimisation problem that can be solved with the NLPQLP System is: Determine the θSol – vector that solves the problem:

Page 18: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

6

2.2 Specific Problems Solved as Part of This Research The specific problems that were solved during this study have a general form (i.e., the General T-Matrix NLP control problem) that is a specific application of the general non-linear

programming problem defined in section 2.1. In this case, the general g Z θ( )[ ] scalar

performance index function is replaced with a quadratic function of a T-Matrix plant model. The T-Matrix itself is a linear plant model that relates the measurement Ζ – vector to the control

. The performance index, J , is a quadratic function of the measurement Ζ – vector. Limits as per the general non-linear programming problem are imposed on the elements of the control θ – vector. Both the equality φ θ( ) and inequality ψ θ( ) constraint functions are non-

linear functions of the elements of the control θ – vector. The elements of the equality φ θ( ) −vector constraint function are pseudo-generalisations of the elements of a vector cross

product. The Inequality Constraint ψ θ( ) −vector function includes two forms of inequality

constraints: (1) the First Inequality Constraint 1ψ θ( ) −vector sub-vector function is comprised of

elements that are pseudo-generalisations of an amplitude constraint on a matched harmonic pair (i.e., the sine and cosine elements of a specific harmonic control signal) of control

elements, and (2) the Second Inequality Constraint 2ψ θ( ) −vector sub-vector function is

comprised of elements that are pseudo-generalisations of a rate-of-change constraint on an element of the control vector. Each of these problems has four sub-problems that were analysed and solved. These sub-problems are: (1) unconstrained optimisation, (2) optimisation with only equality constraints, (3) optimisation with only inequality constraints, and (4) optimisation with both equality constraints and inequality constraints. This General T-Matrix NLP control problem with both equality and inequality constraints is defined as: Determine the θSol – vector that solves the problem:

Page 19: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

7

2.2.1 (6 x 4) T-Matrix NLP Control Problems

For the (6 x 4) T-Matrix NLP control problem, the number of elements (dimension) in the control θ – vector is four (i.e., Nθ

= 4), and the number of elements (dimension) in the predicted

measurement Ζ – vector is six (i.e., NZ = 6). Correspondingly, the system or transfer T-Matrix is

(6 x 4). The number of elements (dimension) in the Equality Constraint φ θ( ) _vector is one

(i.e., NEQ = 1), the number of elements in the First Inequality Constraint 1ψ θ( ) _sub-vector

function is two (i.e., NIEQ1 = 2), the number of elements in the Second Inequality Constraint

2ψ θ( ) −sub-vector function is four (i.e., NIEQ2 = 4), and the dimension of the Inequality

Constraint ψ θ( ) _vector is six (i.e., NIEQ = NIEQ1 +

NIEQ2 = 6). The (6 x 4) T-Matrix NLP control

problem with all constraints is defined as:

Page 20: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

8

Determine the θ – vector, θSol , that solves the problem:

Page 21: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

9

The (6 x 4) T-Matrix NLP control problem has four sub-problems: (1) unconstrained optimisation, (2) optimisation with only equality constraints, (3) optimisation with only inequality constraints, and (4) optimisation with both equality constraints and inequality constraints. It was assumed that the tasking of these T-Matrix NLP control problems occurred within the framework of real-time controller duty cycles. To expedite the testing, experimentation, and evaluation of the NLPQLP System, the required input data was synthetically determined using a process designed expressly for this analysis. Specifically, a previously identified T-Matrix and an actual control 0θ – vector/actual measurement – vector pair from a previous duty cycle were

synthesised for use as input to these problems. Additionally, these already synthesised values were directly input to the (6 x 4) T-Matrix NLP control problems for comparison purposes. The classic regulator problem was solved to verify the NLP solutions to the unconstrained optimisation NLP problems. Agreement was obtained in all cases. Listings of the command (DCL) file code and the Fortran main driver code for the Hewlett-Packard Alpha mainframe computer, and the input and output for the four sub-problems that were part of the (6 x 4) T-Matrix NLP control problems solved using the Hewlett-Packard Alpha mainframe computer, are presented in Appendix B, section B.1. A listing of the Fortran main driver code for the Mac Pro desktop computer, and the input and output for the four sub-problems that were part of the (6 x 4) T-Matrix NLP control problems solved using the Mac Pro desktop computer, are presented in Appendix C, section C.1. These (6 x 4) T-Matrix NLP control problems are representative of actual rotorcraft control problems. The solutions to these problems were sufficiently fast to be included in real-time duty cycles.

Page 22: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

10

2.2.2 (6 x 6) T-Matrix NLP Control Problems For the (6 x 6) T-Matrix NLP control problem, the number of elements (dimension) in the control θ – vector is six (i.e., Nθ

= 6), and the number of elements (dimension) in the predicted measurement Ζ – vector is also six (i.e., NZ

= 6). Correspondingly, the system or transfer

T-Matrix is (6 x 6). The number of elements (dimension) in the Equality Constraint φ θ( ) _vector

is one (i.e., NEQ = 1), the number of elements in the First Inequality Constraint 1ψ θ( ) _sub-

vector is three (i.e., NIEQ1 = 3), the number of elements in the Second Inequality Constraint

2ψ θ( ) −sub-vector function is six (i.e., NIEQ2 = 6), and the dimension of the Inequality Constraint

ψ θ( ) _vector is nine (i.e., NIEQ = NIEQ1 +

NIEQ2 = 9). The (6 x 6) T-Matrix NLP control problem

with all constraints is defined as: Determine the θ – vector, θSol , that solves the problem:

Page 23: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

11

The (6 x 6) T-Matrix NLP control problem has four sub-problems: (1) unconstrained optimisation, (2) optimisation with only equality constraints, (3) optimisation with only inequality constraints, and (4) optimisation with both equality constraints and inequality constraints. It was assumed that the tasking of these T-Matrix NLP control problems occurred within the framework of real-time controller duty cycles. To expedite the testing, experimentation, and evaluation of the NLPQLP System, the required input data was synthetically determined using a process designed expressly for this analysis. Specifically, a previously identified T-Matrix and an actual control 0θ – vector/actual measurement – vector pair from a previous duty cycle were

synthesised for use as input to these problems. Additionally, these already synthesised values were directly input to the (6 x 6) T-Matrix NLP control problems for comparison purposes. The classic regulator problem was solved to verify the NLP solutions to the unconstrained optimisation NLP problems. Agreement was obtained in all cases.

Page 24: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

12

Listings of the command (DCL) file code and the Fortran main driver code for the Hewlett-Packard Alpha mainframe computer, and the input and output for the four sub-problems that were part of the (6 x 6) T-Matrix NLP control problems solved using the Hewlett-Packard Alpha mainframe computer, are presented in Appendix B.2. A listing of the Fortran main driver code for the Mac Pro desktop computer, and the input and output for the four sub-problems that were part of the (6 x 6) T-Matrix NLP control problems solved using the Mac Pro desktop computer, are presented in Appendix C.2. These (6 x 6) T-Matrix NLP control problems are representative of actual rotorcraft control problems. The solutions to these problems were sufficiently fast to be included in real-time duty cycles. 2.2.3 (24 x 8) T-Matrix NLP Control Problems For the (24 x 8) T-Matrix NLP control problem, the number of elements (dimension) in the control θ – vector is 8 (i.e., Nθ

= 8), and the number of elements (dimension) in the predicted measurement Ζ – vector is 24 (i.e., NZ

= 24). Correspondingly, the system or transfer T-Matrix is

(24 x 8). The number of elements (dimension) in the Equality Constraint φ θ( ) _vector is 2

(i.e., NEQ = 2), the number of elements in the First Inequality Constraint 1ψ θ( ) _sub-vector is 4

(i.e., NIEQ1 = 4), the number of elements in the Second Inequality Constraint 2ψ θ( ) −sub-vector

function is 8 (i.e., NIEQ2 = 8), and the dimension of the Inequality Constraint ψ θ( ) _vector is 12

(i.e., NIEQ = NIEQ1 +

NIEQ2 = 12). The (24 x 8) T-Matrix NLP control problem with all constraints is

defined as:

Determine the θ – vector, θSol , that solves the problem:

Page 25: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

13

Subject to :

Page 26: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

14

The (24 x 8) T-Matrix NLP control problem has four sub-problems: (1) unconstrained optimisation, (2) optimisation with only equality constraints, (3) optimisation with only inequality constraints, and (4) optimisation with both equality constraints and inequality constraints. It was assumed that the tasking of these T-Matrix NLP control problems occurred within the framework of real-time controller duty cycles. To expedite the testing, experimentation, and evaluation of the NLPQLP System, the required input data was synthetically determined using a process designed expressly for this analysis. Specifically, a previously identified T-Matrix and an actual control 0θ – vector/actual measurement – vector pair from a previous duty cycle were

synthesised for use as input to these problems. Additionally, these already synthesised values were directly input to the (24 x 8) T-Matrix NLP control problems for comparison purposes. The classic regulator problem was solved to verify the NLP solutions to the unconstrained optimisation NLP problems. Agreement was obtained in all cases. Listings of the command (DCL) file code and the Fortran main driver code for the Hewlett-Packard Alpha mainframe computer, and the input and output for the four sub-problems that were part of the (24 x 8) T-Matrix NLP control problems solved using the Hewlett-Packard Alpha mainframe computer, are presented in Appendix B, section B.3. A listing of the Fortran main driver code for the Mac Pro desktop computer, and the input and output for the four sub-problems that were part of the (24 x 8) T-Matrix NLP control problems solved using the Mac Pro desktop computer, are presented in Appendix C, section C.3. These (24 x 8) T-Matrix NLP control problems are representative of actual rotorcraft control problems. The solutions to these problems were sufficiently fast to be included in real-time duty cycles. 2.2.4 (90 x 30) T-Matrix NLP Control Problems For these problems, the number of elements (dimension) in the control θ – vector is 30 (i.e., Nθ

= 30), and the number of elements (dimension) in the predicted measurement Ζ – vector is 90 (i.e., NZ

= 90). Correspondingly, the system or transfer T-Matrix is (90 x 30). The

number of elements (dimension) in the Equality Constraint φ θ( ) _vector is 7 (i.e., NEQ = 7), the

number of elements in the First Inequality Constraint 1ψ θ( ) _sub-vector is 15 (i.e., NIEQ1 = 15),

the number of elements in the Second Inequality Constraint 2ψ θ( ) −sub-vector function is 30 (i.e., NIEQ2

= 30), and the dimension of the Inequality Constraint ψ θ( ) _vector is 45

(i.e., NIEQ = NIEQ1 +

NIEQ2 = 45). The (90 x 30) T-Matrix NLP control problem with all constraints is

defined as:

Page 27: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

15

Determine the θ – vector, θSol , that solves the problem:

then

Subject to :

Page 28: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

16

Page 29: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

17

The (90 x 30) T-Matrix NLP control problem has four sub-problems: (1) unconstrained optimisation, (2) optimisation with only equality constraints, (3) optimisation with only inequality constraints, and (4) optimisation with both equality constraints and inequality constraints. It was assumed that the tasking of these T-Matrix NLP control problems occurred within the framework of real-time controller duty cycles. To expedite the testing, experimentation, and evaluation of the NLPQLP System, the required input data was synthetically determined using a process designed expressly for this analysis. Specifically, a previously identified T-Matrix and an actual control 0θ – vector/actual measurement – vector pair from a previous duty cycle were

synthesised for use as input to these problems. Additionally, these already synthesised values were directly input to the (90 x 30) T-Matrix NLP control problems for comparison purposes. The classic regulator problem was solved to verify the NLP solutions to the unconstrained optimisation NLP problems. Agreement was obtained in all cases. Listings of the command (DCL) file code and the Fortran main driver code for the Hewlett-Packard Alpha mainframe computer, and the input and output for the four sub-problems that were part of the (90 x 30) T-Matrix NLP control problems solved using the Hewlett-Packard Alpha mainframe computer, are presented in Appendix B, section B.4. A listing of the Fortran main driver code for the Mac Pro desktop computer, and the input and output for the four sub-problems that were part of the (90 x 30) T-Matrix NLP control problems solved using the Mac Pro desktop computer, are presented in Appendix C, section C.4. These (90 x 30) T-Matrix NLP control problems are representative of aerodynamic surface design and/or aircraft configuration problems and, although they were solved rapidly, they are more suitable to non-real-time design applications. 2.2.5 (90 x 60) T-Matrix NLP Control Problems For these problems, the number of elements (dimension) in the control θ – vector is 60 (i.e., Nθ

= 60), and the number of elements (dimension) in the predicted measurement Ζ – vector is 90 (i.e., NZ

= 90). Correspondingly, the system or transfer T-Matrix is (90 x 60). The

number of elements (dimension) in the Equality Constraint φ θ( ) _vector is 15 (i.e., NEQ = 15),

the number of elements in the First Inequality Constraint 1ψ θ( ) _sub-vector is 30

(i.e., NIEQ1 = 30), the number of elements in the Second Inequality Constraint 2ψ θ( ) −sub-vector

function is 60 (i.e., NIEQ2 = 60), and the dimension of the Inequality Constraint ψ θ( ) _vector is

90 (i.e., NIEQ = NIEQ1 +

NIEQ2 = 90). The (90 x 60) T-Matrix NLP control problem with all

constraints is defined as:

Determine the θ – vector, θSol , that solves the problem:

Page 30: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

18

then

Subject to :

Page 31: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

19

Page 32: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

20

The (90 x 60) T-Matrix NLP control problem has four sub-problems: (1) unconstrained optimisation, (2) optimisation with only equality constraints, (3) optimisation with only inequality constraints, and (4) optimisation with both equality constraints and inequality constraints. It was assumed that the tasking of these T-Matrix NLP control problems occurred within the framework of real-time controller duty cycles. To expedite the testing, experimentation, and evaluation of the NLPQLP System, the required input data was synthetically determined using a process designed expressly for this analysis. Specifically, a previously identified T-Matrix and an actual control 0θ – vector/actual measurement – vector pair from a previous duty cycle were

synthesised for use as input to these problems. Additionally, these already synthesised values were directly input to the (90 x 60) T-Matrix NLP control problems for comparison purposes. The classic regulator problem was solved to verify the NLP solutions to the unconstrained optimisation NLP problems. Agreement was obtained in all cases. Listings of the command (DCL) file code and the Fortran main driver code for the Hewlett-Packard Alpha mainframe computer, and the input and output for the four sub-problems that were part of the (90 x 60) T-Matrix NLP control problems solved using the Hewlett-Packard Alpha mainframe computer, are presented in Appendix B, section B.5. A listing of the Fortran main driver code for the Mac Pro desktop computer, and the input and output for the four sub-problems that were part of the (90 x 60) T-Matrix NLP control problems solved using the Mac Pro desktop computer, are presented in Appendix C, section C.5. These (90 x 60) T-Matrix NLP control problems are representative of aerodynamic surface design and/or aircraft configuration problems and, although they were solved rapidly, they are more suitable to non-real-time design applications. 2.3 Synthetic Data The specific problems that were solved during this study were representative of actual problems to be solved during experimentation and/or testing of various rotorcraft configurations. It is assumed that the tasking of these T-Matrix NLP control problems occurs within the framework of real-time controller duty cycles. Tasking of one of these T-Matrix NLP control problems during the current duty cycle requires: (1) a previously identified T-Matrix, and (2) the actual control

0θ – vector and the actual measurement – vector pair determined during a previous duty

cycle or at a reference epoch time. Preparations for such experimentation and/or testing requires the definition of the specific NLP problem (i.e., the performance index, the dimension and elements of the control vector and the measurement vector, and all constraints) to be solved. The main driver program, which defines the problem to be solved and tasks the NLPQLP System to solve it, must be coded, verified for proper functioning, and tuned-up so that it reliably and efficiently solves the required problems during actual tests. This, of course, must precede the test and the generation of actual associated test data.

Page 33: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

21

In an actual wind tunnel or flight test, the identification and/or acquisition of the required data would normally be tasked during a previous duty cycle or at a reference epoch time and would be transmitted to the NLP program host computer for the solution of the NLP problem. The solution control Solθ – vector would then be transmitted back to the controller during the current

duty cycle. It is necessary to have input/output (I/O) interface/compatibility between the controller and the NLP host computer in order to successfully transmit usable data between the controller and the NLP host computer. This issue is not addressed in this document. Although it might be possible to use similar test data from another test for verification and tuning purposes, in general this is cumbersome and can be unnecessarily time consuming. In addition, there could be I/O interface/compatibility issues associated with use of test data from another test. Synthetic determination of the T-Matrix, the actual control 0θ – vector, and the actual

measurement – vector data avoids problems associated with use of test data from another

test and provides a simple, rapid method to obtain the required data during verification and tuning. A synthesis procedure was designed to provide the T-Matrix and a previous duty cycle “actual” control 0θ – vector/“actual” measurement – vector pair required for the verification of the

NLP main driver codes and subsequent tuning of the operation of these codes to solve the type of problems expected during the test. In order to develop a realistic test of the main driver codes and the NLPQLP System, a small degree of randomness was included in the synthetic modelling. Uniformly distributed pseudo-random numbers were selected for this synthesis process (see section 2.3.1). First, the T-Matrix is determined by defining its elements to be pseudo-random numbers between –1.0 inclusive and +1.0 exclusive (see section 2.3.2). Scaling coefficients are provided to ensure that the norm to the T-Matrix is within acceptable limits. Next, the “actual” control

0θ – vector is likewise determined by defining its elements to be pseudo-random numbers

between –1.0 inclusive and +1.0 exclusive (see section 2.3.2). In this case, the elements are constrained to be within specified limits à la “external limiting.” Although the definition of the T-Matrix and the “actual” control 0θ – vector was accomplished using pseudo-random numbers,

these elements did not have to be defined randomly and could have been directly input or generated otherwise. These elements were generated randomly for convenience. The essential requirements for these elements are that the scaling and limits be reasonable and the resulting values are realistic. The degree of randomness to the model is introduced in the definition of the “actual” measurement – vector. The “actual” measurement – vector is defined by adding

uniformly distributed pseudo-random numbers to the T 0θ product used in the definition of the

– vector (see section 2.3.2).

Page 34: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

22

2.3.1 Definition of the Random Number Generator Function RAN(SEED)

The random number generator function, RAN(•), employed for data synthesis from both the Hewlett-Packard Alpha mainframe computer and Mac Pro desktop computer, produces a real uniformly pseudo-random number between 0.0 inclusive and 1.0 exclusive

. Because the algorithm employed by RAN(•) on the Hewlett-Packard

Alpha mainframe computer is a VMS System subroutine, it is not necessary to provide this subroutine for the main driver code on that computer. In order to provide nearly identical main driver codes, and because the corresponding G95 intrinsic uniform pseudo-random number

generator function is named RAND(•), a Fortran code for a RAN(•) subroutine that calls

RAND(•) is provided in addition to the main driver code for the Mac Pro desktop computer. It is,

however, necessary to define this RAN(•) with EXTERNAL and REAL statements in the Mac Pro main driver codes. The provision of the EXTERNAL and REAL statements in the Mac Pro main driver codes is the only difference from the corresponding main driver codes for the

Hewlett-Packard Alpha mainframe computer. These RAN(•) codes employ different algorithms to generate the pseudo-random numbers, and correspondingly will, in general, produce different numerical values.

Both of these RAN(•) random number generators require provision of a seed in the calling argument. This argument (i.e., the seed) should initially be set to a large odd-integer value for

the first call to RAN(•). Its value will be updated during this call to RAN(•) to be used in the

next call to RAN(•).

Page 35: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

23

2.3.2 Determination of the Synthetic T-Matrix, the “Actual” Control 0θ – Vector, and the

“Actual” Measurement –Vector

The methodology employed to synthetically determine the T-Matrix, the actual control

0θ – vector, and the actual measurement – vector data is:

First, synthesise the T-Matrix according to:

otherwise there is no change to the value of pInitial

θ as determined by the random equation above.

Page 36: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

24

where

Page 37: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

25

2.4 The Regulator Problem Unlike the non-linear programming problems that are constrained/unconstrained optimisation problems, the regulator problem is a steady-state problem; its solution process seeks maintenance of a steady-state condition with minimal control and, in some cases, minimal control rate of change. Because the regulator problem solution is analytically explicit and known, its solution process is fast and has a relatively small computational load compared to the constrained/unconstrained optimisation solution processes. In some cases, “External Limiting” constraints (i.e., direct maximum limits on control vector elements imposed after the analytic explicit solution is obtained) are imposed on control vector elements. Correspondingly, early attempts (i.e., circa the 1950s) to solve constrained/unconstrained optimisation control problems formulated these problems as regulator problems because the algorithms for constrained/ unconstrained optimisation solution processes and computer technology were in their early stages of development and not sufficiently reliable or efficient for this purpose. As computer technology advances occurred and efficient, reliable optimisation techniques were developed, use of numerical optimisation techniques became feasible for actual test applications. A control vector metric, and a rate of change of the control vector metric if required, are adjoined to a steady-state excursion metric to form the performance index for the regulator problem. By appropriately defining the steady-state excursion metric, which is the first term in the performance index, and carefully tuning the weighting coefficients for all the terms in the performance index, a pseudo-optimal solution can be obtained that satisfies, or nearly satisfies, any required constraints. This tuning must, of course, be accomplished before actual test applications. As in the case of the General T-Matrix NLP control problem described in section 2.2, a T-Matrix linear plant model that relates the measurement Ζ – vector to the control θ – vector is assumed for the regulator problem described below. The first-term performance index is the steady-state excursion metric and a quadratic function of a T-Matrix plant model, and correspondingly a quadratic function of the control θ – vector. The second term in the performance index is simply a weighted control θ – vector quadratic. If required, the third term in the performance index is a weighted time rate of change of the control θ – vector quadratic. The regulator problem is:

Page 38: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

26

Determine the θ – vector, θSol , that solves the problem:

Subject to NO constraints per se during the regulator problem solutionprocess to determine Solθ .

Page 39: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

27

In some cases, "External Limiting" constraints are imposed on Solθ after theexplicit analytic solution for Solθ is determined. Specifically :

otherwise there is no change to the value of θSol p

as determined by the equation for the explicitsolution for θSol p

.

3.0 Results and Conclusions The newly acquired Version 3.1 of the NLPQLP System was used to solve several typical constrained and unconstrained optimisation problems of the type encountered in various rotorcraft wind tunnel and flight tests on both the Hewlett-Packard Alpha mainframe computer and the Mac Pro desktop computer. The associated software and codes installed on the Mac Pro desktop computer should be transportable to a Mac laptop computer for use in a wind tunnel. A linear dependence (i.e., a T-Matrix plant model) of the measurement vector (the measurement Ζ – vector) on the control vector (i.e., the control θ – vector) was assumed. These problems ranged from a relatively simple, unconstrained 4-vector control problem, to a relatively large, constrained 60-vector control problem. Solutions were obtained for all problems considered. Although tuning and some input adjustments were required to successfully solve the large, constrained 60-vector control problem, the NLPQLP System proved to be an efficient and reliable method to solve these problems.

Page 40: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

28

The problems solved in this analysis included: (6 x 4) T-Matrix NLP control problems, (6 x 6) T-Matrix NLP control problems, (24 x 8) T-Matrix NLP control problems, (90 x 30) T-Matrix NLP control problems, and (90 x 60) T-Matrix NLP control problems. Each of these problems had four sub-problems: (1) unconstrained optimisation, (2) optimisation with only equality constraints, (3) optimisation with only inequality constraints, and (4) optimisation with both equality constraints and inequality constraints. It was assumed that the tasking of these T-Matrix NLP control problems occurred within the framework of real-time controller duty cycles. To expedite the testing, experimentation, and evaluation of the NLPQLP System, the required input data was synthetically determined using a process designed expressly for this analysis. Specifically, a previously identified T-Matrix and an actual control 0θ – vector/actual

measurement – vector pair from a previous duty cycle, or at a reference epoch time, were

synthesised for use as input to these problems. Additionally, these already synthesised values were directly input to the (6 x 4), (6 x 6), and (24 x 8) T-Matrix NLP control problems for comparison purposes. The classic regulator problem was solved to verify the NLP solutions to the unconstrained optimisation NLP problems. Agreement was obtained in all cases. The (6 x 4), (6 x 6), and (24 x 8) T-Matrix NLP control problems are representative of actual rotorcraft control problems. The solutions to these problems were sufficiently fast to be included in real-time duty cycles. The (90 x 30) and (90 x 60) T-Matrix NLP problems are representative of aerodynamic surface design and/or aircraft configuration problems and, although they were solved rapidly, they are more suitable to non-real-time design applications. The results are shown in Appendix B and Appendix C, separate volumes of this report. Listings of the command (DCL) file code and the Fortran main driver code for the Hewlett-Packard Alpha mainframe computer, and the input and output for the four sub-problems that were part of the (6 x 4), (6 x 6), (24 x 8), (90 x 30), and (90 x 60) T-Matrix NLP control problems solved using the Hewlett-Packard Alpha mainframe computer, are presented in Appendix B. A listing of the Fortran main driver code for the Mac Pro desktop computer, and the input and output for the four sub-problems that were part of the (6 x 4), (6 x 6), (24 x 8), (90 x 30), and (90 x 60) T-Matrix NLP control problems solved using the Mac Pro desktop computer, are presented in Appendix C.

Page 41: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

29

4.0 References 1. Leyland, J. A.: A Higher Harmonic Optimal Controller to Optimise Rotorcraft Aeromechanical

Behaviour. NASA Technical Memorandum 110390, Mar. 1996. 2. Leyland, J. A.: A Closed-Loop Optimal Neural-Network Controller to Optimise Rotorcraft

Aeromechanical Behaviour, Volume 1, Theory and Methodology. NASA TM-2001-209622, Mar. 2001.

3. Leyland, J. A.: A Closed-Loop Optimal Neural-Network Controller to Optimise Rotorcraft

Aeromechanical Behaviour, Volume 2, Output from Two Sample Cases. NASA TM-2001-209623, Mar. 2001.

4. Leyland, J. A.: A General Regularisation Functional to Enhance the Update Convergence of

a Neural-Network Rotorcraft Behaviour Model, Volume 1, Theory and Methodology. NASA TM-2002-211843, Oct. 2002.

5. Leyland, J. A.: A General Regularisation Functional to Enhance the Update Convergence of

a Neural-Network Rotorcraft Behaviour Model, Volume 2, Output From Two Sample Cases. NASA TM-2002-211844, Oct. 2002.

6. Anon.: IMSL MATH/LIBRARY User’s Manual, FORTRAN Subroutines for Mathematical

Applications, Volume 3, Chapter 8: Nonlinearly Constrained Minimization Using Finite Difference Gradients. Version 1.1, MALB-USM-UNBND-EN8901-1.1, pp. 895–902, Jan. 1989.

7. Schittkowski. K.: Non-linear Programming Codes. Lecture Notes in Economics and

Mathematics, 183, Springer-Verlag, Berlin, Germany, 1980. 8. Schittkowski, K.: On the Convergence of a Sequential Quadratic Programming Method With

an Augmented Lagrangian Line Search Function. Mathematik Operationsforschung und Statistik, Serie Optimization, 14, pp. 197–216, 1983.

9. Schittkowski, K.: NLPQL: a FORTRAN Subroutine solving Constrained Non-linear

Programming Problems. (Clyde L. Monma, Ed.), Annals of Operations Research, 5, pp. 485–500, 1986.

10. Gill, P. E.; Murray, W.; Saunders, M. A.; and Wright, M. H.: Model Building and Practical

Aspects of Non-Linear Programming. Computational Mathematical Programming, (K. Schittkowski, Ed.), NATO ASI Series, 15, Springer-Verlag, Berlin, Germany, 1985.

11. Powell, M. J. D.: A Fast Algorithm for Non-linearly Constrained Optimisation Calculations.

Numerical Analysis Proceedings, Dundee, 1977.

Page 42: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

30

12. Powell, M. J. D.: A Fast Algorithm for Non-linearly Constrained Optimisation Calculations. Lecture Notes in Economics and Mathematics, 630, Springer-Verlag, Berlin, Germany, pp. 144–157, 1978.

13. Stoer, J.: Principles of Sequential Quadratic Programming Methods in Solving Non-Linear

Problems. Computational Mathematical Programming, (K. Schittkowski, Ed.), NATO ASI Series, 15, Springer-Verlag, Berlin, Germany, 1985.

14. Schittkowski, K.: NLPQLP: a FORTRAN Implementation of a Sequential Quadratic

Programming Algorithm With Distributed and Non-Monotone Line Search – User’s Guide, Version 3.1. Department of Computer Science, University of Bayreuth, Germany, Feb. 2010.

15. Anon.: Programming in VAX FORTRAN, Software Version: V4.0. VAX/VMS Manual No.

AA-D034D-TE, Digital Equipment Corporation (DEC), Maynard, Mass., Sept. 1984. 16. Vaught, A.: G95 FORTRAN Compiler, Mesa, Ariz., Oct. 2006.

Page 43: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

Appendix A

NLPQLP: A Fortran Implementation of a Sequential Quadratic

Programming Algorithm with Distributed and Non-Monotone Line

Search - User’s Guide, Version 3.1

By Professor Klaus Schittkowski

Department of Computer Science

University of Bayreuth, Germany

Page 44: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation
Page 45: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-iii

Table of Contents

Abstract................................................................................................................................... A-1

1 Introduction ....................................................................................................................... A-2

2 Sequential Quadratic Programming Methods .................................................................... A-7

Algorithm 2.1 ................................................................................................................... A-10

Algorithm 2.2 ................................................................................................................... A-11

3 Performance Evaluation .................................................................................................. A-14

3.1 The Test Environment ............................................................................................ A-14

3.2 Testing Distributed Function Calls .......................................................................... A-17

3.3 Function Evaluations and Gradient Approximations by a Difference Formulae

Under Random Noise ............................................................................................. A-18

3.4 Testing Scaled Restarts .......................................................................................... A-19

4 Program Documentation ................................................................................................. A-22

5 Examples ........................................................................................................................ A-29

6 Conclusions .................................................................................................................... A-35

References ........................................................................................................................... A-36

Page 46: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-iv

Page 47: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-1

NLPQLP: A Fortran Implementation of a Sequential Quadratic Programming Algorithm with Distributed and Non-Monotone Line Search

- User’s Guide, Version 3.1 -

Address: Prof. K. Schittkowski Department of Computer Science University of Bayreuth D - 95440 Bayreuth

Phone: (+49) 921 557750

E-mail: klaus.schittkowski@uni-bayreuth. de

Web: http://www.klaus-schittkowski.de

Date: May, 2010

Abstract

The Fortran subroutine NLPQLP solves smooth nonlinear programming

problems by a sequential quadratic programming (SQP) algorithm. This version

is specifically tuned to run under distributed systems controlled by an input

parameter

l . In case of computational errors as for example caused by

inaccurate function or gradient evaluations, a non-monotone line search is

activated. Numerical results are included which show that in case of noisy

function values, a significant improvement of the performance is achieved

compared to the version with monotone line search. Further stabilization is

obtained by performing internal restarts in case of errors when computing the

search direction due to inaccurate derivatives. The new version of NLPQLP

successfully solves more than 90% of our 306 test examples subject to a

stopping tolerance of 10–7, although at most two digits in function values are

correct in the worst case and although numerical differentiation leads to

additional truncation errors. In addition, automated initial and periodic scaling

with restarts is implemented. The usage of the code is documented and

illustrated by an example.

Keywords: SQP, sequential quadratic programming, nonlinear programming, non-monotone line

search, numerical algorithm, distributed computing, Fortran code.

Page 48: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-2

1 Introduction

We consider the general optimization problem to minimize an objective function

l under

nonlinear equality and inequality constraints,

min f (x)

x IRn

: gj x 0 , j 1, , me 1 gj x 0 , j me 1, , m

xl x xu

where

x is an n-dimensional parameter vector. It is assumed that all problem functions

f (x) and

gj x , j 1, , m are continuously differentiable on the whole

IRn

.

Sequential quadratic programming (SQP) is the standard general purpose method to solve

smooth nonlinear optimization problems, at least under the following assumptions:

The problem is not too large.

Functions and gradients can be evaluated with sufficiently high precision.

The problem is smooth and well scaled.

The original code NLPQL of Schittkowski [47] is a Fortran implementation of a sequential

quadratic programming (SQP) algorithm. The numerical algorithm is based on extensive

comparative numerical tests, see Schittkowski [40, 44, 42], Schittkowski et al. [56], Hock and

Schittkowski [25], and on further theoretical investigations published in [41, 43, 45, 46]. The

algorithm is extended to solve also nonlinear least squares problems efficiently, see [49] or [51],

and to handle problems with very many constraints, see [54]. To conduct the numerical tests, a

random test problem generator is developed for a major comparative study, see [40], Two

collections with together 306 test problems are published in Hock and Schittkowski [25] and in

Schittkowski [48]. Fortran source codes and a test frame can be downloaded from the home

page of the author,

http://www.klaus-schittkowski.de

Many of them became part of the Cute test problem collection of Bongartz et al. [7]. About 80

test problems based on a Finite Element formulation are collected for a comparative evaluation

in Schittkowski et al. [56]. A set of 1,300 least squares test problems solved by an extension of

the code NLPQL to retain typical features of a Gauss-Newton algorithm, is described in [51].

Page 49: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-3

Also these problems can be downloaded from the home page of the author together with an

interactive software system called EASY-FIT, see [52].

Moreover, there exist hundreds of commercial and academic applications of NLPQL, for

example

1. mechanical structural optimization, see Schittkowski, Zillober, Zotemantel [56] and

Kneppe, Krammer, Winkler [28],

2. data fitting and optimal control of transdermal pharmaceutical systems, see Boderke, Schittkowski, Wolf [3] or Blatt, Schittkowski [6],

3. computation of optimal feed rates for tubular reactors, see Birk, Liepelt, Schittkowski, and Vogel [5],

4. food drying in a convection oven, see Frias, Oliveira, and Schittkowski [ 15 ] ,

5. optimal design of horn radiators for satellite communication, see Hartwanger, Schittkowski, and Wolf [23],

6. receptor-ligand binding studies, see Schittkowski [50],

7. optimal design of surface acoustic wave filters for signal processing, see Bfinner, Schittkowski, and van de Braak [8].

Previous and present versions of NLPQLP are part of commercial libraries, modeling systems,

or optimization systems like

- IMSL Library (Visual Numerics Inc., Houston) for general nonlinear programming

(Version 1.0, 1981),

- ANSYS/POPT (CAD-FEM, Grafing) for structural optimization,

- DesignXplorer (ANSYS, Canonsburg) for structural design optimization,

- STRUREL (RCP, Munich) for reliability analysis,

- TEMPO (OECD Reactor Project, Halden) for control of power plants,

- Microwave Office Suit (Applied Wave Research, El Segundo) for electronic design,

- MOOROPT (Marintek, Trondheim) for the design of mooring systems,

- iSIGHT (Enginious Software/Dassault) for multi-disciplinary CAE,

- POINTER (Synaps, Atlanta) for design automation,

- EXCITE (AVL, Graz) for non-linear dynamics of power units,

- ModeFRONTIER (ESTECO, Trieste) for integrated multi-objective and multidisciplinary

design optimization,

Page 50: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-4

- TOMLAB/MathLab (Tomlab Optimization, Vasteras, Sweden) for general nonlinear

programming, least squares optimization, data fitting in dynamical systems,

- EASY-FIT (Schittkowski, Bayreuth) for data fitting in dynamical systems,

- OptiSLang (DYNARDO, Weimar), for structural design optimization,

- AMESim (IMAGINE, Roanne), for multidisciplinary system design,

- LMS OPTIMUS (NOESIS, Leuven, Belgium) for multi-disciplinary CAE,

- RADIOSS/M-OPT (MECALOG/Altair, Antony, France) for multi-disciplinary CAE,

- CHEMASIM (BASF, Ludwigshafen) for the design of chemical reactors.

Customers include, among many others, AMD, Astrium, BASF, Bayer, Bell Labs, BMW,

Chevron Research, DLR, Dow Chemical, DuPont, EADS, EMCOSS, ENSIGC, EPCOS, ESA-

ESOC, Eurocopter, Fantoft Prosess, General Electric, Hoechst, Hidro-electrica Espanola, IABG,

IBM, Institute for Energy Technology Halden, KFZ Karlsruhe, Kongsberg Maritime, Lockheed

Martin, Loral Space Systems, Markov Processes, Marintek, MTU, NASA Langley, NASA Ames,

Nevesbu, National Airspace Laboratory, Norsk Hydro Research, Norwegian Computing Center,

Norwegian Defense Agency, OECDHalden, Philips, Polysar, ProSim, Rolls-Royce, Shell,

Siemens, Sintef, Solar Turbines, Statoil, TNO, Transpower, USAF Research Lab, Wright R & D

Center and in addition dozens of academic research institutions all over the world.

The general availability of parallel computers and in particular of distributed computing in

networks motivates a careful redesign of the original implementation NLPQL to allow

simultaneous function evaluations. The resulting extensions are implemented and the code is

called NLPQLP. An additional input parameter

l is introduced for the number of parallel

machines, that is the number of function calls to be executed simultaneously. In case of

l 1 ,

NLPQLP is more or less identical to NLPQL besides of additional changes of the code.

Otherwise, the line search procedure is modified to allow parallel function calls, which can also

be applied for approximating gradients by difference formulae. The mathematical background is

outlined, in particular the modification of the line search algorithm to retain convergence under

parallel systems. It must be emphasized that dis tributed computation of function values is only

simulated throughout the paper. It is up to the user to adopt the code to a particular parallel

environment.

Page 51: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-5

However, SQP methods are quite sensitive subject to round-off or any other errors in function

and especially gradient values. If objective or constraint functions cannot be computed within

machine accuracy or if the accuracy by which gradients are approximated is above the

termination tolerance, the code could break down typically with the error message IFAIL = 4. In

this situation, the line search cannot be terminated within a given number of iterations and the

algorithm is stopped.

All new versions since 2.0 makes use of non-monotone fine search in the error situation

described above. The idea is to replace the reference value of the fine search termination

check,

rkxk

, vk , by

max rj jx , jv : j k p, , k

where

r x, v is a merit function and

p a given parameter. The general idea is not new and

for example described in Dai [11], where a general convergence proof for the unconstrained

case is presented. The general idea goes back to Grippo, Lampariello, and Lucidi [18], and was

extended to constrained optimization and trust region methods in a series of subsequent

papers, see Bonnans et al. [4], Deng et al. [13], Grippo et al. [19, 20], Ke and Han [26], Ke et al.

[27], Lucidi et al. [30], Panier and Tits [34], Raydan [39], and Toint [59, 60]. However, there is a

basic difference in the methodology: Our goal is to allow monotone line searches as long as

they terminate successfully, and to apply a non-monotone one only in a special error situation.

Despite of strong analytical results, SQP methods do not always terminate successfully.

Besides of the difficulties leading to the usage of non-monotone line search, it might happen

that the search direction as computed from a certain quadratic programming sub-problem, is not

a downhill direction of the merit function needed to perform a fine search. Possible reasons are

again severe errors in function and especially gradient evaluations, or a violated regularity

condition concerning linear independency of gradients of active constraints (LICQ). In the latter

case, the optimization problem is not modelled in a suitable way to solve it directly by an SQP

method. Our new version performs an automated restart as soon as a corresponding error

message appears. The BFGS quasi-Newton matrix is reset to a multiple of the identity matrix

and the matrix update procedure starts from there.

Page 52: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-6

Scaling is an extremely important issue and an efficient procedure is difficult to derive in the

general case without knowing too much about the numerical structure of the optimisation

problem. If requested by the user, the first BFGS update is started from a multiple of the identity

matrix, which takes into account information from the solution of the initial quadratic

programming sub-problem. This restart can be repeated periodically with successively adapted

scaling parameters.

In Section 2 we outline the general mathematical structure of an SQP algorithm, the

non-monotone line search, and the modifications to run the code under distributed systems.

Section 3 contains some numerical results obtained for a set of 306 standard test problems of

the collections published in Hock and Schittkowski [25] and in Schittkowski [48]. They show the

sensitivity of the new version with respect to the number of parallel machines and the influence

of gradient approximations under uncertainty. Moreover, we test the non-monotone line search

versus the monotone one, and generate noisy test problems by adding random errors to

function values and by inaccurate gradient approximations. This situation appears frequently in

practical environments, where complex simulation codes prevent accurate responses and

where gradients can only be computed by a difference formula. The usage of the Fortran

subroutine is documented in Section 4 and Section 5 contains an illustrative examples.

Page 53: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-7

2 Sequential Quadratic Programming Methods

Sequential quadratic programming or SQP methods belong to the most powerful nonlinear

programming algorithms we know today for solving differentiable nonlinear programming

problems of the form (1). The theoretical background is described e.g. in Stoer [58] in form of a

review, or in Spellucci [57] in form of an extensive text book. From the more practical point of

view, SQP methods are also introduced in the books of Papalambros, Wilde [35] and Edgar,

Himmelblau [14]. Their excellent numerical performance is tested and compared with other

methods in Schittkowski [40], and since many years they belong to the most frequently used

algorithms to solve practical optimization problems.

To facilitate the notation of this section, we assume that upper and lower bounds xuand xi are

not handled separately, i.e., we consider the somewhat simpler formulation

min f (x)

x IRn

: gj x 0 , j 1, , me 2 gj x 0 , j me 1, , m

It is assumed that all problem functions

f (x) and

gj x , j 1, , m

are continuously

differentiable on

IRn

.

The basic idea is to formulate and solve a quadratic programming sub-problem in each iteration

which is obtained by linearising the constraints and approximating the Lagrangian function

L x, u : f (x) juj 1

m

jg x 3

quadratically, where

x IRn

is the primal variable and

u 1u , , mu T

IRm

the

multiplier vector.

To formulate the quadratic programming sub-problem, we proceed from given iterates

x IRn

an approximation of the solution,

v IRm

an approximation of the multipliers, and

Bk IRn xn

,

an approximation of the Hessian of the Lagrangian function. Then one has to solve the

quadratic programming problem

Page 54: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-8

min 12dTBkd f (xk )

Td

d IRn

: gj xk T

d gj xk 0 , j 1, , me 4

gj xk T

d gj xk 0 , j me 1, , m

Let

dk be the optimal solution and

uk the corresponding multiplier of this sub-problem. A new

iterate is obtained by

xk 1

vk 1

: xk

vk

k

dk

uk v

k

5

where

k 0, 1 is a suitable step length parameter.

Although we are able to guarantee that the matrix

Bk is positive definite, it is possible that (4) is

not solvable due to inconsistent constraints. One possible remedy is to introduce an additional

variable

IR leading to a modified quadratic programming problem, see Schittkowski [47] for

details.

The steplength parameter

k is required in (5) to enforce global convergence of the SQP

method, i.e., the approximation of a point satisfying the necessary Karush-Kuhn-Tucker

optimality conditions when starting from arbitrary initial values, typically a user-provided

x0 IRnand

v0 0,

B0 I .

k should satisfy at least a sufficient decrease condition of a merit

function

r() given by

r () : rx

v

d

u v

6

with a suitable penalty function by

rx, u . Implemented is the augmented Lagrangian

function

r x, u : f (x) vj gj x 12rj gj x

2

j J

12

vj2

rjj K

7

with

J : 1, , me j : me j m , gj x j / rj

Page 55: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-9

and

K : 1, , m \ J , cf. Schittkowski [45].

The objective function is penalized as soon as an iterate leaves the feasible domain. The

corresponding penalty parameters

rj , j 1, , m that control the degree of constraint

violation, must carefully be chosen to guarantee a descent direction of the merit function, see

Schittkowski [45] or Wolfe [61] in a more general setting, i.e., to get

rk0 rk

xk

, vk T dk

uk vk

0 8

Finally one has to approximate the Hessian matrix of the Lagrangian function in a suitable way.

To avoid calculation of second derivatives and to obtain a final super linear convergence rate,

the standard approach is to update

Bk , by the BFGS quasi-Newton formula, cf. Powell [37] or

Stoer [58].

The implementation of a line search algorithm is a critical issue when implementing a nonlinear

programming algorithm, and has significant effect on the overall efficiency of the resulting code.

On the one hand we need a line search to stabilize the algorithm, on the other hand it is not

desirable to waste too many function calls. Moreover, the behaviour of the merit function

becomes irregular in case of constrained optimization because of very steep slopes at the

border caused by large penalty terms. Even the implementation is more complex than shown

above, if linear constraints and bounds of the variables are to be satisfied during the line search.

Usually, the step-length parameter

k is chosen to satisfy the Armijo [1] condition

r i r(0)

i rk(0) 9

see for example Ortega and Rheinboldt [33], The constants are from the ranges 0 < μ < 0.5,

0 < < 1, and 0 < 1. We start with

i 0 and increase

i until (9) is satisfied for the first

time, say at

ik . Then the desired steplength is

k ik .

Fortunately, SQP methods are quite robust and accept the steplength one in the neighbourhood

of a solution. Typically the test parameter μ for the Armijo-type sufficient descent property (9) is

Page 56: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-10

very small. Nevertheless the choice of the reduction parameter β must be adopted to the actual

slope of the merit function. If β is too small, the line search terminates very fast, but on the other

hand the resulting stepsizes are usually too small leading to a higher number of outer iterations.

On the other hand, a larger value close to one requires too many function calls during the fine

search. Thus, we need some kind of compromise, which is obtained by first applying a

polynomial interpolation, typically a quadratic one, and use (9) only as a stopping criterion.

Since φr(0) , ′ φ r(0) , and φr(αi ) are given, α i the actual iterate of the line search procedure,

we easily get the minimiser of the quadratic interpolation. We accept then the maximum of this

value and the Armijo parameter as a new iterate, as shown by the subsequent code fragment

implemented in NLPQLP.

Algorithm 2.1

Let β, μ with 0 < β < 1, 0 < μ < 0.5 be given.

Start : α0 : = 1

For i = 0, 1, 2, • • • , do :

1) If φr(α i ) < φr(0) + μαi ′ φ rk(0) , then stop.

2) Compute αi : =0. 5 αi

2 ′ φ r(0)αi ′ φ rk(0) − φr (αi ) + φr(0)

3) Let α i+ 1 : = max( β α i α i ) .

Corresponding convergence results are found in Schittkowski [45]. α i is the minimiser of the

quadratic interpolation, and we use the Armijo descent property for checking termination. Step 3

is required to avoid irregular values, since the minimiser of the quadratic interpolation could be

outside of the feasible domain 0,1( ]. The search algorithm is implemented in NLPQLP together

with additional safeguards, for example to prevent violation of bounds. Algorithm 4.1 assumes

that φr(1) is known before calling the procedure, i.e., that the corresponding function values are

given. We have to stop the algorithm, if sufficient descent is not observed after a certain number

of iterations, say 10. If the tested stepsize falls below machine precision or the accuracy by

which model function values are computed, the merit function cannot decrease further.

Page 57: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-11

To outline the new approach, let us assume that functions can be computed simultaneously on

l

different machines. Then

l test values

i i1

with

1/(l1) are selected,

i 1, , l .

where

is a guess for the machine precision. Next we require

l parallel function calls to get the

corresponding model function values. The first

i satisfying a sufficient descent property (9),

say for

i ik is accepted as the new steplength to set the subsequent iterate by

k : ik .

One has to be sure that existing convergence results of the SQP algorithm are not violated.

The proposed parallel line search will work efficiently, if the number of parallel machines

l is

sufficiently large, and works as follows, where we omit the iteration index

k .

Algorithm 2.2

Let , with 0 1, 0 0. 5 be given.

Start : For i i1

compute r( i ) for i 0, 1, 2, , l1

For i 0, 1, 2, do :

If r(i )

r(0) i r(0) , then stop.

To precalculate

l candidates in parallel at log-distributed points between a small tolerance

and

1, 0 1, we propose

1/(l1).

The paradigm of parallelism is SPMD, i.e., Single Program Multiple Data. In a typical situation

we suppose that there is a complex application code providing simulation data, for example by

an expensive Finite Element calculation in mechanical structural optimisation. It is supposed

that various instances of the simulation code providing function values, are executable on a

series of different machines, so-called slaves, controlled by a master program that executes

NLPQLP. By a message passing system, for example PVM, see Geist et al. [16], only very few

data need to be transferred from the master to the slaves. Typically only a set of design

parameters of length

n must to be passed. On return, the master accepts new model responses

for objective function and constraints, at most

m 1 double precision numbers. All massive

numerical calculations and model data, for example the stiffness matrix of a Finite Element

model in a mechanical engineering application, remain on the slave processors of the

distributed system.

Page 58: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-12

In both situations, i.e., the serial or parallel version, it is still possible that Algorithm 2.1 or

Algorithm 2.2 breaks down because to too many iterations. In this case, we proceed from a

descent direction of the merit function, but

r(0) is extremely small. To avoid interruption of the

whole iteration process, the idea is to repeat the line search with another stopping criterion.

Instead of testing (9 ) , we accept a stepsize

k as soon as the inequality

rk(k )

k p(k) j kmax

rj(0) ik

rk(0)

10

is satisfied, where

p k is a predetermined parameter with

p k min k, p , p a given

tolerance. Thus, we allow an increase of the reference value

rjk

(0) in a certain error situation,

i.e., an increase of the merit function value. To implement the non-monotone line search, we

need a queue consisting of merit function values at previous iterates. In case of

k 0, the

reference value is adapted by a factor greater than

1 , i.e.,

rjk

(0) is replaced by

trjk

(0) , t 1.

The basic idea to store reference function values and to replace the sufficient descent property

by a sufficient ’ascent’ property in max-form, is for example described in Dai [11], where a

general convergence proof for the unconstrained case is presented. The general idea goes

back to Grippo, Lampariello, and Lucidi [18], and was extended to constrained optimization and

trust region methods in a series of subsequent papers, see Bonnans et al. [4], Deng et al. [13],

Grippo et al. [19, 20], Ke and Han [26], Ke et al. [27], Lucidi et al. [30], Panier and Tits [34],

Raydan [39], and Toint [59, 60]. However, there is a difference in the methodology: Our goal is

to allow monotone line searches as long as they terminate successfully, and to apply a non-

monotone one only in an error situation.

Page 59: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-13

The final step of an SQP method consists of updating the quasi-Nerwton Matrix

Bk , e.g., by the

BFGS formula

Bk : Bk qkqkT

pkTqk

BkpkpkTBk

pkTBkpk

, 11

where

qk : xL xk 1

, uk xL xk , uk and

pk

: xk1 x

k . Special safeguards

guarantee that

pkTqk 0 and that thus all matrices

Bk r remain positive definite provided that

B0 is positive definite. A possible scaling factor and restart procedure is to replace an actual

Bk

by

k I before performing the update (11), where

k

pkTqk

pkT pk

and where

I denotes the

identity matrix, see for example Liu and Nocedal [29]. Scaled restarts are recommended if, e.g.,

the convergence turns out to become extremely slow.

Page 60: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-14

3 Performance Evaluation

3.1 The Test Environment

Our numerical tests use the 306 academic and real-life test problems published in Hock and

Schittkowski [25] and in Schittkowski [48]. Part of them are also available in the Cute library, see

Bongartz et. al [7], and their usage is described in Schittkowski [55].

Since analytical derivatives are not available for all problems, we approximate them numerically.

The test examples are provided with exact solutions, either known from analytical

precalculations by hand or from the best numerical data found so far.

First we need a criterion to decide whether the result of a test run is considered as a successful

return or not. Let

0 be a tolerance for defining the relative accuracy,

xk the final iterate of

a test run, and

x the supposed exact solution known from the test problem collection. Then

we call the output a successful return, if the relative error in the objective function is less than e

and if the maximum constraint violation is less than

2 i.e., if

f xk f x f x , if f x 0

or

f xk , if f x 0

and

r xk g xk

2,

where

denotes the maximum norm and

g xk min 0, g xk , j me and

g xk g xk otherwise.

We take into account that a code returns a solution with a better function value than the known

one, subject to the error tolerance of the allowed constraint violation. However, there is still the

possibility that an algorithm terminates at a local solution different from the known one. Thus,

we call a test run a successful one, if in addition to the above decision the internal termination

conditions are satisfied subject to a reasonably small tolerance (IFAIL = 0), and if

Page 61: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-15

f xk f x f x , if f x 0

or

f xk , if f x 0

and

r xk 2,

For our numerical tests, we use

0. 01 to determine a successful return, i.e., we require a

final accuracy of one percent. Note that in all cases, NLPQLP is called with a termination

tolerance of

107

.

If gradients are not available in analytical form, they must be approximated in a suitable way.

The three most popular difference formulae are the following ones:

1. Forward differences:

xif x 1

i

f x iei f x 12

2. Two-sided differences:

xif x 1

2if x

iei f x iei 13

3. Forth-order formula:

xif x 1

4!i2 f x 2

iei 16 f x

iei

16 f x iei 2 f x 2

iei 14

Here

i max 10

5, xi

and

ei is the

i th unit vector,

i 1, , n . The tolerance

depends on the difference formula and is set to

m

1 / 2 for forward differences,

m

1 / 3

for two-sided differences, and

m /72

1 / 4

for fourth-order formulae.

m

is a guess for

the accuracy by which function values are computed, i.e., either machine accuracy in case of

Page 62: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-16

analytical formulae or an estimate of the noise level in function computations. In a similar way,

derivatives of constraints are computed.

The Fortran implementation of the SQP method introduced in the previous section, is called

NLPQLP. The code represents the most recent version of NLPQL which is frequently used in

academic and commercial institutions. NLPQLP is prepared to run also under distributed

systems, but behaves in exactly the same way as the serial version, if the number of simulated

processors is set to one. Functions and gradients must be provided by reverse communication

and the quadratic programming sub-problems are solve by the primal-dual method of Goldfarb

and Idnani [17] based on numerically stable orthogonal decompositions. NLPQLP is executed

with termination accuracy ACC = 10–7 as mentioned already above, and a maximum number of

iterations MAXIT = 500.

In the subsequent tables, we use the notation

nsucc - number of successful test runs (according to above definition)

nfunc - average number of function evaluations

ngrad - average number of gradient evaluations or iterations, respectively

f x - final objective function value

r x - final constraint violation

ifail - failure code

To get

nfunc or

ngrad , we count each evaluation of a whole set of function or gradient values,

respectively, for a given iterate

xk also in the case of several simulated processors,

l 0.

However, additional function evaluations needed for gradient approximations, are not counted

for

nfunc . Their average number is

nfunc for forward differences,

2 x nfunc for two-sided

differences, and

4 x nfunc for fourth-order formulae. One gradient computation corresponds to

one iteration of the SQP method.

The Fortran codes are compiled by the Intel Visual Fortran Compiler, Version 10.1, EM64T,

under Windows XP64 and Dual Core AMD Opteron Processor 265, 1.81 GHz, with 8 GB of

RAM.

Page 63: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-17

3.2 Testing Distributed Function Calls

First we investigate the question, how parallel line searches influence the overall performance.

Table 1 shows the number of successful test runs and the average number of iterations or

gradient evaluations,

nit for an increasing number of simulated parallel calls of model functions

denoted by

l . The forward difference formula (12) is used for gradient approximations and non-

monotone line search is applied with a queue size of

p 30. Calculation time is about one

second for solving all 306 test problems without random perturbations.

l 1 corresponds to the sequential case, when Algorithm 2.1 is applied to the line search

consisting of a quadratic interpolation combined with an Armijo-type bisection strategy and a

non-monotone stopping criterion.

l nsucc ngrad

l nsucc ngrad

1 306 23 8 299 39 3 224 177 9 301 32 4 242 170 10 302 31 5 268 114 15 303 23 6 289 75 20 303 22 7 297 45 50 303 22

Table 1: Performance Results for Parallel Line Search

In all other cases,

l 1 simultaneous function evaluations are made according to Algorithm

2.2. To get a reliable and robust line search, one should use at least seven parallel processors.

No significant improvements are observed, if we evaluate more than ten functions in parallel.

The most promising possibility to exploit a parallel system architecture occurs, when gradients

cannot be calculated analytically, but have to be approximated numerically, for example by

forward differences, two-sided differences, or even higher order methods. Then we need at

least

n additional function calls, where

n is the number of optimisation variables, or a suitable

multiple of

n.

Page 64: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-18

3.3 Function Evaluations and Gradient Approximations by a Difference Formulae Under Random Noise

For our numerical tests, we apply the forth-order difference formula (14). To test the stability of

the formula and the underlying SQP code, we add randomly generated noise to each function

value. Non-monotone line search is applied with a queue length of p = 30 in error situations,

and the serial line search calculation by Algorithm 2.1 is used. Moreover, the BFGS quasi-

Newton updates are restarted with

I if a descent direction cannot be computed.

To compare the different stabilisation approaches, we apply three different scenarios:

Table 2 - monotone line search, no restarts

Table 3 - non-monotone line search, no restarts

Table 4 - non-monotone line search and restarts

err nsucc nfunc ngrad

0 304 35 22

10 12

303 36 22

10 10

297 40 23

108

293 43 23

10 6

280 57 24

10 4

243 74 26

102

133 133 32

Table 2: Test Results for Monotone Line Search without Restarts

err nsucc nfunc ngrad

0 306 38 22

10 12

303 37 23

10 10

300 43 25

108

300 53 24

10 6

295 71 25

10 4

268 116 30

102

294 185 33

Table 3: Test Results for Non-Monotone Line Search without Restarts

Page 65: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-19

err nsucc nfunc ngrad

0 306 38 22

10 12

305 39 23

10 10

300 47 24

108

303 83 27

10 6

302 105 30

10 4

297 318 43

102

279 647 64

Table 4: Test Results for Non-Monotone Line Search and Restarts

The corresponding results are evaluated for increasing random perturbations

err . More

precisely, if

denotes a uniformly distributed random number between

0 and

1, we replace

f xk by

f xk 1 err 2 1 at each iterate

xk

. In the same way, restriction functions are

perturbed. The tolerance for approximating gradients,

m

is set to the machine accuracy in

case of

err 0 , and to the random noise level otherwise.

The numerical results are surprising and depend heavily on the new non-monotone line search

strategy and the additional stabilisation procedures. We are able to solve about 90% of the test

examples in case of extremely noisy function values with at most one correct digit in partial

derivative values. However, the stabilization process is costly. The more test problems are

successfully solved, the more iterations, especially function evaluations, are needed.

3.4 Testing Scaled Restarts

In some situations, the convergence of an SQP method becomes quite slow for many reasons,

e.g., badly scaled variables or functions, inaccurate derivatives, or inaccurate solutions of the

quadratic program (4). In these situations, errors in the search direction or the partial derivatives

influence the update procedure (11) and the quasi-Newton matrices

Bk are getting more and

more inaccurate.

A frequently proposed remedy is to restart the update algorithm by replacing the actual matrix

Bk by the initial matrix

B0 or any similar one, if more information is available. One possibility is

to multiply a special scaling factor with the identity matrix, i.e., to let

Bk : k I for selected

Page 66: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-20

iterates

k , where

k :

pkTqk

pkT pk

and where

I denotes the identity matrix, see for example Liu

and Nocedal [29].

qk : xL xk 1

, uk xL xk , uk and

pk

: xk1 x

k .

Scaled restarts are recommended if convergence turns out to become extremely slow. To

illustrate the situation, we consider a few test runs where the examples are generated by

discretising a two-dimensional elliptic partial differential equation, see Maurer and Mittelmann

[31, 32]. The original formulation is that of an optimal control problem where the state and

control variables are both discretised.

From a total of 13 original test cases, we select five problems that could not be solved by

NLPQLP as efficiently as expected with standard solution tolerances. Depending on the grid

size in our case 20 in each direction, we get problems with

n 722 or

n 798 variables,

respectively, and

me 361 or

me 437 nonlinear equality constraints. They are obtained by

applying the five-star formula to approximate second partial derivatives.

Tables 5 to 8 contain numerical results first for standard tolerances and MODE = 0, where

ACC is set to

107

in all cases. For the results of the remaining tables, We used MODE = 2,

MODE = 7, and MODE = 20. MODE = 2 means that the scaled restart is applied at the very first

step. Note that also for all other test cases with MODE > 0, the initial BFGS matrix is

B0

0 I .

problem nme nfunc ngrad f x r x ifail

EX 1 722 361 64 64 0.45903100E-1 0.33E-10 0 EX 2 722 361 109 109 0.40390974E-1 0.22E-8 0 EX 3 722 361 88 88 0.11009561E+0 0.49E-9 0 EX 4 798 437 113 113 0.75833416E-1 0.12E-9 0 EX 5 798 437 200 200 0.51376012E-1 0.60E-5 1

Table 5: Test Results for Scaled Restarts: MODE = 0

Page 67: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-21

problem nme nfunc ngrad f x r x ifail

EX 1 722 361 64 64 0.45903100E-1 0.64E-11 0 EX 2 722 361 108 108 0.40390974E-1 0.21E-8 0 EX 3 722 361 75 75 0.11009568E+0 0.46E-9 0 EX 4 798 437 108 108 0.75833417E-1 0.63E-9 0 EX 5 798 437 200 200 0.51369466E-1 0.14E-6 1

Table 6: Test Results for Scaled Restarts: MODE = 2

problem nme nfunc ngrad f x r x ifail

EX 1 722 361 20 20 0.45903160E-1 0.19E-7 0 EX 2 722 361 21 21 0.40390974E-1 0.79E-7 0 EX 3 722 361 41 41 0.11009561E+0 0.23E-9 0 EX 4 798 437 58 58 0.75833423E-1 0.44E-8 0 EX 5 798 437 112 112 0.51365403E-1 0.15E-12 0

Table 7: Test Results for Scaled Restarts: MODE = 7

problem nme nfunc ngrad f x r x ifail

EX 1 722 361 50 50 0.45903100E-1 0.68E-8 0 EX 2 722 361 33 33 0.40390974E-1 0.22E-8 0 EX 3 722 361 36 36 0.11009561E+0 0.23E-7 0 EX 4 798 437 61 61 0.75833414E-1 0.17E-8 0 EX 5 798 437 75 75 0.51365398E-1 0.14E-7 0

Table 8: Test Results for Scaled Restarts: MODE = 20

The error codes are the same as produced by NLPQLP through the parameter IFAIL, i.e.,

IFAIL = 0 for successful termination and IFAIL = 1 for reaching the upper limit of 200 iterations.

We observe a significant speedup for scaled restarts every seven iterations. Initial scaling and

more then 7 restarts do not yield any better results.

Page 68: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-22

4 Program Documentation

NLPQLP is implemented in form of a Fortran subroutine. The quadratic programming problem is

solved by the code QL, an implementation of the primal-dual method of Goldfarb and Idnani [17]

going back to Powell [38], see also Schittkowski [53] for more details about implementation and

usage. Model functions and gradients must be provided by reverse communication. The user

has to evaluate function and gradient values in the same program that executes NLPQLP,

according to the following rules:

1. Choose starting values for the variables to be optimised, and store them in the first

column of an array called X.

2. Compute objective and all constraint function values, store them in XF(1) and the first

column of G, respectively.

3. Compute gradients of objective function and all constraints, and store them in DF and

DG, respectively. The J-th row of DG contains the gradient of the J-th constraint,

J = 1, , M.

4. Set IFAIL = 0 and execute NLPQLP.

5. If NLPQLP returns with IFAIL = -1, compute objective and constraint function values for

all variables found in the first L columns of X, store them in F (first L positions) and G

(first L columns), and call NLPQLP again.

6. If NLPQLP terminates with IFAIL = -2, compute gradient values with respect to the

variables stored in the first column of X, and store them in DF and DG. Only derivatives

for active constraints, ACT(J) = .TRUE., need to be computed. Then call NLPQLP again.

7. If NLPQLP terminates with IFAIL = 0, the internal optimality criteria are satisfied. In the

case of IFAIL > 0, an error has occurred.

If analytical derivatives are not available, simultaneous function calls can be used for gradient

approximations, for example by forward differences 2N > L two-sided differences 4N > L 2N,

or even higher order formulae L 4N.

Page 69: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-23

Usage:

CALL NLPQLP( L, M, ME, MMAX, N, / NMAX, MNN2, X, F, G, / DF, DG, U, XL, XU, / C, D, ACC, ACCQP, STPMIN, / MAXFUN, MAXIT, MAXNM, RHOB, IPRINT, / MODE, IOUT, IFAIL, WA, LWA, / KWA, LKWA, ACT, LACT, LQL, / QPSLVE, )

Definition of the parameters:

L : Number of parallel systems, i.e., function calls during line search

at predetermined iterates.

M : Total number of constraints.

ME : Number of equality constraints.

MMAX : Row dimension of array DG containing Jacobian of constraints.

MMAX must be at least one and greater or equal to M.

N : Number of optimisation variables.

NMAX : Row dimension of C. NMAX must be at least two and greater

than N.

MNN2 : Must be equal to M + N +N +2 when calling NLPQLP.

X(NMAX, L): Initially, the first column of X has to contain starting values for the

optimal solution. On return, X is replaced by the current iterate. In

the driving program the row dimension of X has to be equal to

NMAX. X is used internally to store L different arguments for

which function values should be computed simultaneously.

F(L): On return, F(1) contains the final objective function value. F is

used also to store L different objective function values to be

computed from L sets of arguments stored in X.

G(MMAX, L): On return, the first column of G contains the constraint function

values at the final iterate X. In the driving program, the row

dimension of G has to be equal to MMAX. G is used internally to

store L different sets of constraint function values to be computed

from L sets of argumentsstored in X.

DF(NMAX): DF contains the current gradient of the objective function. In case

of numerical differentiation and a distributed system (L > 1) , it is

recommended to apply parallel evaluations of F to compute DF.

Page 70: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-24

U(MNN2): U contains the multipliers with respect to the actual iterate stored

in the first column of X. The first M locations contain the

multipliers of the M nonlinear constraints, the subsequent N

locations the multipliers of the lower bounds, and the final N

locations the multipliers of the upper bounds. At an optimal solution, all multipliers with respect to inequality constraints should be nonnegative

XL (N), XU (N): On input, the one-dimensional arrays XL and XU must contain the

lower and upper bounds of the variables, respectively.

C(NMAX, NMAX): On return, C contains the last computed approximation of the

Hessian matrix of the Lagrangian function. C is stored in form of

an Cholesky decomposition, is LQL is set to false, see below. In

this case, C contains the lower triangular factor of an LDL

factorization of the final quasi-Newton matrix (without diagonal elements, which are always one). In the driving program, the row

dimension of C has to be equal to NMAX.

D (NMAX): The elements of the diagonal matrix of the LDL decomposition of

the quasi-Newton matrix are stored in the one-dimensional array

D, if LQL is false.

ACC : The user has to specify the desired final accuracy (e.g. 1.0D-7).

The termination accuracy should not be much smaller than the accuracy by which gradients are computed.

ACCQP : The tolerance is needed for the QP solver to perform several

tests, for example whether optimality conditions are satisfied or

whether a number is considered as zero or not. If ACCQP is less

or equal to zero, then the machine precision is computed by

NLPQLP and subsequently multiplied by 1.0D+4.

STPMIN : Minimum steplength in case of L > 1. Recommended is any value

in the order of the accuracy by which functions are computed. The value is needed to compute a steplength reduction factor by

STPMIN 1/ L 1

.

If STPMIN 0, then STPMIN = ACC is used.

MAXFUN : The integer variable defines an upper bound for the number of

function calls during the line search (e.g., 20). MAXFUN is only

needed in case of L = 1, and must not be greater than 50.

MAXIT : Maximum number of outer iterations, where one itera\tion

corresponds to one formulation and solution of the quadratic programming subproblem, or, alternatively, one evaluation of gradients (e.g.,

100).

MAXNM : Stack size for storing merit function values at previous iterations

for non-monotone line search (e.g., 10). If MAXNM = 0, a

monotone line search is performed. MAXNM should not be greater than 50.

Page 71: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-25

RHOB : Parameter for performing a restart in case of IFAIL = 2 by setting

the BFGS-update matrix to

RHOB I, where I denotes the

identity matrix. The number of restarts is bounded by MAXFUN.

A value greater than one is recommended. (e.g.,

100).

IPRINT : Specification of the desired output level.

0 - No output of the program.

1 - Only final convergence analysis.

2 - One line of intermediate results for each iteration.

3 - More detailed information for each iteration.

4 - More line search data is displayed.

Note that constraint and multiplier values are not displayed for

N, M > 1000.

MODE : The parameter specifies the desired version of NLPQLP.

0 - Normal execution (reverse communication!).

1 - Initial guess for multipliers in U and Hessian of the

Lagrangian function in C and D provided. In case of

LQL = .TRUE., D is ignored. Otherwise, the lower part of C

has to contain the lower triangular factor of an LDL

decomposition and D the diagonal part.

2 - Initial scaling (Oren-Luenberger) after first step, BFGS

updates started from multiple of identity matrix.

3 - Scaled restart, if scaling parameter is less than square root of

ACC.

>3 - Initial and repeated scaling every MODE steps, reset of BFGS matrix to multiple of identity matrix.

IOUT : Integer indicating the desired output unit number, i.e., all write

statements start with

' WRITE IOUT, ' .

IFAIL : The parameter shows the reason for terminating a solution

process. Initially, IFAIL must be set to zero. On return, IFAIL

could contain the following values:

-2 - Compute new gradient values.

-1 - Compute new function values.

0 - Optimality conditions satisfied.

1 - Stop after MAXIT iterations

2 - Uphill search direction.

3 - Underflow when computing new BFGS-update matrix.

4 - Line search exceeded MAXFUN iterations.

5 - Length of a working array too short.

6 - False dimensions, if M > MMAX, N NMAX, or MNN2 M +

N + N + 2. 7 - Search direction close to zero at infeasible iterate.

Page 72: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-26

8 - Starting point violates lower or upper bound.

9 - Wrong input parameter, e.g., MODE, IPRINT, IOUT.

10 - Inconsistency in QP, division by zero.

100 - Error message of QP solver.

WA(LWA): WA is a double precision working array of length LWA. On return,

the first N positions contain the best feasible iterate obtained, WA(N+1) the corresponding objective function value, and the

subsequent M positions the constraint values. If no intermediate

feasible solution exists, WA(N+1) contains a large value, e.g., 1.0D+72.

LWA : Length of WA, has to be at least at least 23*N+4*M+3*MMAX+150.

NOTE: The standard QP-solver coming together with NLPQLP (QL). needs additional memory for 3*NMAX*NMAX/2+10*NMAX+MMAX+N+1 double precision

numbers.

KWA (LKWA): KWA is an integer working array of length LKWA. On return, the

first 5 positions contain the following information.

KWA(1) - Number of function evaluations.

KWA(2) - Number of gradient evaluations.

KWA(3) - Iteration count.

KWA(4) - Number of QP’s solved.

KWA(5) - Flag for better feasible, but non-stationary iterate (=1)

or not (=0), see below.

LKWA : Length of KWA, has to be at least at least 20.

NOTE: The standard QP-solver coming together with NLPQLP (QL) needs additional memory for N double precision numbers.

ACT(LACT K): The logical array indicates constraints, which NLPQLP considers

to be active at the last computed iterate, i.e., G (J, 1) is active, if

and only if ACT (J) is true for

J = 1, , M.

LACT : Length of ACT, has to be at least 2*M + 10.

LQL : If LQL is set to true in the calling program, the quadratic

programming problem is solved proceeding from a full positive definite quasi-Newton matrix. Otherwise, a Cholesky decomposition (LDL) is performed and updated internally, so that

matrix C always consists of the lower triangular factor and D of

the diagonal

Page 73: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-27

QPSLVE : External subroutine to solve the quadratic programming

subproblem. The calling sequence is

CALL QPSLVE( M, ME, MMAX, N, NMAX, / MNN, C D, A, B, / XL, XU, X, U, EPS, / MODE, IOUT, IFAIL, IPRINT, WAR, / LWAR, IWAR, LIWAR )

For more details about the choice and dimensions of arguments,

see [53].

Some of the termination reasons depend on the accuracy used for approximating gradients. If

we assume that all functions and gradients are computed within machine precision and that the

implementation is correct, there remain only the following possibilities that could cause an error

message:

1. The termination parameter ACC is too small, so that the numerical algorithm plays

around with round-off errors without being able to improve the solution. Especially the

Hessian approximation of the Lagrangian function becomes unstable in this case. A

straightforward remedy is to restart the optimization cycle again with a larger stopping

tolerance.

2. The constraints are contradicting, i.e., the set of feasible solutions is empty. There is

no way to find out, whether nonlinear and nonconvex constraints are feasible or not.

Thus, the nonlinear programming algorithms will proceed until running in any of the

mentioned error situations. In this case, the correctness of the model must be carefully

checked.

3. Constraints are feasible, but active constraints are degenerate, e.g., redundant. One

should know that SQP algorithms assume the satisfaction of the so-called linear

independency constraint qualification, i.e., that gradients of active constraints are

linearly independent at each iterate and in a neighborhood of an optimal solution. In

this situation, it is recommended to check the formulation of the model constraints.

However, some of the error situations also occur if, because of wrong or non-accurate

gradients, the quadratic programming subproblem does not yield a descent direction for the

underlying merit function. In this case, one should try to improve the accuracy of function

evaluations, scale the model functions in a proper way, or start the algorithm from other initial

values.

Page 74: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-28

Since Version 2.1, NLPQLP returns the best iterate obtained. In case of successful termination

(IFAIL = 0), this is always the last one. But it might be possible that in an exceptional situation,

an intermediate iterate is feasible with a better objective function value than that one of the final

iterate, but the KKT optimality conditions axe not satisfied. In this case, the better feasible

solution is stored at the first

n positions of the double precision working array and the

corresponding objective function value at position

n 1. Moreover, positions

n 2 t o

n 1 m contain the constraint values. Note that feasibility is tested by sum of constrained

violations tested against ACC.

On successful return with IFAIL = 0, KWA(5) is set to zero. If, however, a better feasible

objective function value has been found du r ing the first five iterations, then KWA(5) is set to

1 ,

the BFGS-update matrix C is set to

I with

1 , where

I denotes the identity matrix. The

corresponding formal argument of NLPQLP is called RHOB. Moreover, the multiplier

approximation vector U is set to

0 . Thus, an immediate restart under control of the user is

possible with MODE = 1. Some information is printed on the standard IO channel in case of

IPRINT > 0. For compatibility reasons with previous versions, RHOB replaces TOLNM and is

set to zero for all input values less than one.

The QP solver is defined in form of an external subroutine to allow a replacement in case of

exploiting special sparsity patterns. A typical example is the usage of NLPQLP for solving least

squares problems, where artificially introduced equality constraints lead to a Jacobian which

consist partially of the identity matrix, see Schittkowski [50, 51].

The internal scaling and restart option is borrowed from limited-memory quasi-Newton methods,

see for example Liu and Nocedal [29]. If requested by the user, the quasi-Newton matrix is

replaced by a scalar multiple of the identity matrix just before updating. Either an initial scaling

or a reset of the whole matrix and computation of a new scaling parameter is performed

depending on the input parameter MODE. A scaled restart is recommended, if, e.g., the

convergence turns out to become extremely slow.

Page 75: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-29

5 Examples

To give an example how to organize the code, we consider Rosenbrock’s post office problem,

i.e., test problem TP37 of Hock and Schittkowski [25].

x1, x2 IR :

min x1x

2x

3

x1 2 x

2 2 x

3 0

72 x1 2 x

2 2 x

3 0

0 x1 42

0 x2 42

0 x3 42

15

NLPQLP comes with a couple of demo programs by which the following situations are to be

illustrated:

File name Comments

nlp_demoA.for numerical differentiation and distributed function calls

nlp_demoB.for numerical differentiation

nlp_demoC.for numerical derivatives

nlp_demoD.for warm and cold restarts

nlp_demoE.for simultaneous function and gradient evaluation

nlp_demoF.for active set strategy

nlp_demoG.for active set strategy

A Fortran source code for a typical situation is listed below. Gradients are approximated by

forward differences. The function block inserted in the main program can be replaced by a

subroutine call. Also the gradient evaluation is easily exchanged by an analytical one or higher

order derivatives

IMPLICIT NONE INTEGER NMAX, MMAX, LMAX, MNN2X, LWA, LKWA, LACTIV PARAMETER ( NMAX = 4, / MMAX = 2, / LMAX = 10, / MNN2X = MMAX + NMAX + NMAX + 2, / LWA = 1.5*NMAX*NMAX + 33*NMAX + 9*MMAX + 200, / LKWA = NMAX + 10, / LACTIV = 2+MMAX + 10) INTEGER KWA(LKWA), N, ME, M, L, MNN2, MAXIT, MAXFUN, / IPRINT, MAXNM, IOUT, MODE, IFAIL, I, J, K, NFUNC DOUBLE PRECISION X(NMAX,LMAX), F(LMAX), G(MMAX,LMAX), DF(NMAX), / DG(MMAX,NMAX), U(MNN2X), XL(NMAX), XU(NMAX), / C(NMAX,NMAX), D(NMAX), WA(LWA), ACC, ACCQP,

Page 76: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-30

/ STPMIN, EPS, EPSREL, FBCK, GBCK(MMAX), XBCK, / RHOB LOGICAL ACTIVE(LACTIV), LQL EXTERNAL QL C C Set some constants and initial values C IOUT = 6 ACC = 1.0D-8 ACCQP = 1.0D-12 STPMIN = 1.0D-10 EPS = 1.0D-7 MAXIT = 100 MAXFUN = 10 MAXNM = 10 RHOB = O.ODO LQL = .TRUE. IPRINT = 2 N = 3 L = N M = 2 ME = 0 MNN2 = M + N + N + 2 MODE = 0 IFAIL = 0 NFUNC = 0 DO I=1,N DO K=1,L K(I,K) = 10.0D0 ENDDO XL(I) = 0.0D0 XU(I) = 42.0D0 ENDDO 1 CONTINUE C====================================================================== C This is the main block to compute all function value

C simultaneously, assuming that there are L nodes.

C The block is executed either for computing a steplength

C or for approximating gradients by forward differences.

C

DO K=1,L

F(K) = -X(1,K)*X(2,K)*X(3,K)

G(1,K) = X(1,K) + 2.0D0*X(2,K) + 2.0D0*X(3,K)

G(2,K) = 72.0D0 - X(1,K) - 2.0D0*X(2,K) - 2.0D0*X(3,K)

ENDDO

C

C====================================================================== NFUNC = NFUNC + 1

IF (IFAIL.EQ.-1) GOTO 4

IF (NFUNC.GT.l) GOTO 3

2 CONTINUE

FBCK = F(l)

DO J=1,M

GBCK(J) = G(J,1)

ENDDO

XBCK = X(l,l)

DO I=1,N

EPSREL = EPS

DMAX1(1.0D0,DABS(X(I,1))) DO K=2,L

X(I,K) = X(I,1)

ENDDO

X(I,I) = X(I,1) + EPSREL

ENDDO

Page 77: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-31

GOTO 1

3 CONTINUE

X(l,l) = XBCK

DO 1=1,N

EPSREL = EPS

DMAX1(1.ODO,DABS(X(I,1))) DF(I) = (F(I) - FBCK)/EPSREL

DO J=1,M

DG(J,I) = (G(J,I) - GBCK(J))/EPSREL

ENDDO

ENDDO

F(l) = FBCK

DO J=1,M

G(J,1) = GBCK(J)

ENDDO

C

4 CONTINUE

CALL NLPQLP ( L, M, ME, MMAX, N,

/ NMAX, MNN2, X, F, G,

/ DF, DG, U, XL, XU,

/ C, D, ACC, ACCQP, STPMIN,

/ MAXFUN, MAXIT, MAXNM, RHOB, IPRINT,

/ MODE, IOUT, IFAIL, WA, LWA,

/ KWA, LKWA, ACTIVE, LACTIV, LQL,

/ QL)

IF (IFAIL.EQ.-1) GOTO 1

IF (IFAIL.EQ.-2) GOTO 2

C

WRITE(IOUT,1000) NFUNC

1000 FORMAT(’ *** Number of function calls: ’,13)

C

STOP

END

The following output should appear on screen:

---------------------------------------------------------------- START OF THE SWQUENTIAL QUADRATIC PROGRAMMING ALGORITHM

----------------------------------------------------------------

Parameters:

N = 3

M = 2

ME = 0

MODE = 0

ACC = 0.1000D-07

ACCQP = 0.1000D-11

STPMIN = 0.1000D-09

MAXFUN = 3

MAXNM = 10

MAXIT = 100

IPRINT = 2

Output in the following order:

IT - iteration number

F - objectivefunction value

SCV - sum of constraint violations

NA - number ofactive constraints

I - number of line search iterations

ALPHA - steplength parameter

DELTA - additional variable to prevent inconsistency

KKT - Karush-Kuhn-Tucker optimality criterion

Page 78: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-32

IT F SCV NA I ALPHA DELTA KKT ---------------------------------------------------------------------------------------------------------------------------------------------- 1 -0.10000000D+04 0.00D+00 2 0 0.00D+00 0.00D+00 0.44D+04 2 -0.23625000D+04 0.64D-07 1 1 0.10D+01 0.00D+00 0.11D+04 3 -0.32507304D+04 0.11D-13 1 1 0.10D+01 0.00D+00 0.69D+03 4 -0.33041403D+04 0.11D-13 1 1 0.10D+01 0.00D+00 0.36D+03 5 -0.34527380D+04 0.11D-13 1 1 0.10D+01 0.00D+00 0.58D+01 6 -0.34559625D+04 0.00D+00 1 1 0.10D+01 0.00D+00 0.10D+00 7 -0.34559625D+04 0.00D+00 1 2 0.10D-04 0.00D+00 0.23D+00 8 -0.34559625D+04 0.00D+00 1 2 0.10D-04 0.00D+00 0.76D-01 9 -0.34560000D+04 0.17D-10 1 1 0.10D+01 0.00D+00 0.24D-04 10 -0.34560000D+04 0.48D-12 1 1 0.10D+01 0.00D+00 0.20D-07 11 -0.34560000D+04 0.11D-13 1 1 0.10D+01 0.00D+00 0.25D-11

--- Final Convergence Analysis at Last Iterate ---

Best result at iteration: ITER = 11 Objective function value: F(X) = -0.34560000D+04 Solution values: X = 0.24000000D+02 0.12000000D+02 0.12000000D+02 Distances from lower bounds: X-XL = 0.24000000D+02 0.12000000D+02 0.12000000D+02 Distances from upper bounds: XU-X = 0.18000000D+02 0.30000000D+02 0.30000000D+02 Multipliers for lower bounds: U = 0.00000000D+00 0.00000000D+00 0.00000000D+00 Multipliers for upper bounds: U = 0.00000000D+00 0.00000000D+00 0.00000000D+00 Constraint values: G(X) = 0.72000000D+02 -0.10658141D-13 Multipliers for constraints: U = 0.00000000D+00 0.14400000D+03 Number of function calls: NFUNC = 11 Number of gradient calls: NFUNC = 11 Number of calls of QP solver: NFUNC = 11

*** Number of function calls: 22

In case of L = 1 and analytical derivative computations, the corresponding serial implementation of the main program is as follows:

IMPLICIT NONE INTEGER NMAX, MMAX, MNN2X, LWA, LKWA, LACTIV PARAMETER ( NMAX = 4, / MMAX = 2, / MNN2X = MMAX + NMAX + NMAX + 2, / LWA = 1.5*NMAX*NMAX + 33*NMAX + 9*MMAX + 200, / LKWA = NMAX + 10, / LACTIV = 2+MMAX + 10) INTEGER KWA(LKWA), N, ME, M, L, MNN2, MAXIT, MAXFUN, / IPRINT, MAXNM, IOUT, MODE, IFAIL, I, J, NFUNC DOUBLE PRECISION X(NMAX), F, G(MMAX), DF(NMAX), DG(MMAX,NMAX), / U(MNN2X), XL(NMAX), XU(NMAX), C(NMAX,NMAX), / D(NMAX), WA(LWA), ACC, ACCQP, STPMIN, RHOB LOGICAL ACTIVE(LACTIV), LQL EXTERNAL QL C C Set some constants and initial values C IOUT = 6 ACC = 1.0D-10 ACCQP = 1.0D-12 STPMIN = 0.0 EPS = 1.0D-7 MAXIT = 100 MAXFUN = 10

Page 79: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-33

MAXNM = 0 RHOB = O.ODO LQL = .TRUE. IPRINT = 2 N = 3 M = 2 ME = 0 MNN2 = M + N + N + 2 MODE = 0 IFAIL = 0 NFUNC = 0 DO I=1,N X(I) = 10.0D0 XL(I) = 0.0D0 XU(I) = 42.0D0 ENDDO 1 CONTINUE C====================================================================== C This block computes all function values.

C

F = -X(1)*X(2)*X(3)

G(1) = X(1) + 2.0D0*X(2) + 2.0D0*X(3)

G(2) = 72.0D0 - X(1) - 2.0D0*X(2) - 2.0D0*X(3)

C

C====================================================================== NFUNC = NFUNC + 1

IF (IFAIL.EQ.-1) GOTO 4

2 CONTINUE

C====================================================================== C This block computes all derivative values.

C

DF(1) = -X(2)*X(3)

DF(2) = -X(1)*X(3)

DF(3) = -X(1)*X(2)

DG(1,1) = 1.0D0

DG(1,2) = 2.0D0

DG(1,3) = 2.0D0

DG(2,1) = -1.0D0

DG(2,2) = -2.0D0

DG(2,3) = -2.0D0

C

C====================================================================== 4 CONTINUE

CALL NLPQLP ( L, M, ME, MMAX, N,

/ NMAX, MNN2, X, F, G,

/ DF, DG, U, XL, XU,

/ C, D, ACC, ACCQP, STPMIN,

/ MAXFUN, MAXIT, MAXNM, RHOB, IPRINT,

/ MODE, IOUT, IFAIL, WA, LWA,

/ KWA, LKWA, ACTIVE, LACTIV, LQL,

/ QL)

IF (IFAIL.EQ.-1) GOTO 1

IF (IFAIL.EQ.-2) GOTO 2

C

WRITE(IOUT,1000) NFUNC

1000 FORMAT(’ *** Number of function calls: ’,13)

C

STOP

END

Page 80: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-34

NLPQLP displays the following output:

---------------------------------------------------------------- START OF THE SWQUENTIAL QUADRATIC PROGRAMMING ALGORITHM

----------------------------------------------------------------

Parameters:

N = 3

M = 2

ME = 0

MODE = 0

ACC = 0.1000D-09

ACCQP = 0.1000D-11

STPMIN = 0.1000D-09

MAXFUN = 10

MAXNM = 0

MAXIT = 100

IPRINT = 2

Output in the following order:

IT - iteration number

F - objectivefunction value

SCV - sum of constraint violations

NA - number ofactive constraints

I - number of line search iterations

ALPHA - steplength parameter

DELTA - additional variable to prevent inconsistency

KKT - Karush-Kuhn-Tucker optimality criterion

IT F SCV NA I ALPHA DELTA KKT ---------------------------------------------------------------------------------------------------------------------------------------------- 1 -0.10000000D+04 0.00D+00 2 0 0.00D+00 0.00D+00 0.44D+04 2 -0.23625000D+04 0.00D+00 1 1 0.10D+01 0.00D+00 0.11D+04 3 -0.32507304D+04 0.36D-14 1 1 0.10D+01 0.00D+00 0.69D+03 4 -0.33041403D+04 0.00D+00 1 1 0.10D+01 0.00D+00 0.36D+03 5 -0.34527380D+04 0.00D+00 1 1 0.10D+01 0.00D+00 0.58D+01 6 -0.34559629D+04 0.00D+00 1 1 0.10D+01 0.00D+00 0.76D-01 7 -0.34560000D+04 0.00D+00 1 1 0.10D+01 0.00D+00 0.25D-04 8 -0.34560000D+04 0.36D-14 1 1 0.10D+01 0.00D+00 0.90D-10

--- Final Convergence Analysis at Last Iterate ---

Objective function value: F(X) = -0.34560000D+04 Solution values: X = 0.24000003D+02 0.11999999D+02 0.11999999D+02 Distances from lower bounds: X-XL = 0.24000003D+02 0.11999999D+02 0.11999999D+02 Distances from upper bounds: XU-X = 0.17999997D+02 0.30000001D+02 0.30000001D+02 Multipliers for lower bounds: U = 0.00000000D+00 0.00000000D+00 0.00000000D+00 Multipliers for upper bounds: U = 0.00000000D+00 0.00000000D+00 0.00000000D+00 Constraint values: G(X) = 0.72000000D+02 -0.35527137D-14 Multipliers for constraints: U = 0.00000000D+00 0.14400000D+03 Number of function calls: NFUNC = 8 Number of gradient calls: NFUNC = 8 Number of calls of QP solver: NFUNC = 8

*** Number of function calls: 8

Page 81: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-35

6 Conclusions

We present a modification of an SQP algorithm designed for execution under a parallel

computing environment (SPMD) and where a non-monotone line search is applied in error

situations. Numerical results indicate stability and robustness for a set of 306 standard test

problems. It is shown that not more than 7 parallel function evaluations per iterations are

required for performing a sufficiently accurate line search. Significant performance improvement

is achieved by the non-monotone line search especially in case of noisy function values and

numerical differentiation, and by restarts in a severe error situation. With the new version of

NLPQLP, we are able to solve about 90% of a standard set of 306 test examples subject to an

termination accuracy of 10–7 in case of extremely noisy function values with relative accuracy of

1% and numerical differentiation. In the worst case, at most one digit of a partial derivative value

is correct.

Page 82: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-36

References

1 Armijo L. (1966): Minimization of functions having Lipschitz continuous first partial

derivatives, Pacific Journal of Mathematics, Vol. 16, 1-3.

2 Barzilai J., Borwein J.M. (1988): Two-point stepsize gradient methods, IMA Journal of

Numerical Analysis, Vol. 8, 141-148.

3 Boderke P., Schittkowski K., Wolf M., Merkle H.P. (2000): Modeling of diffusion and

concurrent metabolism in cutaneous tissue, Journal on Theoretical Biology, Vol. 204, No. 3, 393-407.

4 Bonnans J.F., Panier E., Tits A., Zhou J.L. (1992): Avoiding the Maratos effect by means

of a nonmonotone line search, II: Inequality constrained problems – feasible iterates, SIAM Journal on Numerical Analysis, Vol. 29, 1187-1202.

5 Birk J., Liepelt M., Schittkowski K., Vogel F. (1999): Computation of optimal feed rates

and operation intervals for tubular reactors, Journal of Process Control, Vol. 9, 325-336.

6 Blatt M., Schittkowski K. (1998): Optimal Control of One-Dimensional Partial Differential

Equations Applied to Transdermal Diffusion of Substrates, in: Optimization Techniques and Applications, L. Caccetta, K.L. Teo, P.F. Siew, Y.H. Leung, L.S. Jennings, V. Rehbock ed., School of Mathematics and Statistics, Curtin University of Technology, Perth, Australia, Vol. 1, 81-93.

7 Bongartz I., Conn A.R., Gould N., Toint Ph. (1995): CUTE: Constrained and

unconstrained testing environment, Transactions on Mathematical Software, Vol. 21, No. 1, 123-160.

8 Bünner M.J., Schittkowski K., van de Braak G. (2004): Optimal design of electronic

components by mixed-integer nonlinear programming, Optimization and Engineering, Vol. 5, 271-294.

9 Dai Y.H., Liao L.Z. (1999): R-Linear Convergence of the Barzilai and Borwein Gradient

Method, Research Reoport 99-039, Institute of Computational Mathematics and Scientific/Engineering Computing, Chinese Academy of Sciences.

10 Dai Y.H. (2000): A nonmonotone conjugate gradient algorithm for unconstrained

optimization, Research Report, Institute of Computational Mathematics and Scientific/Engineering Computing, Chinese Academy of Sciences.

11 Dai Y.H. (2002): On the nonmonotone line search, Journal of Optimization Theory and

Applications, Vol. 112, No. 2, 315-330.

12 Dai Y.H., Schittkowski K. (2008): A sequential quadratic programming algorithm with non-

monotone line search, Pacific Journal of Optimization, Vol. 4, 335-351.

Page 83: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-37

13 Deng N.Y., Xiao Y., Zhou F.J. (1993): Nonmonotonic trust-region algorithm, Journal of

Optimization Theory and Applications, Vol. 26, 259-285.

14 Edgar T.F., Himmelblau D.M. (1988): Optimization of Chemical Processes, Mc-Graw Hill.

15 Frias J.M., Oliveira J.C, Schittkowski K. (2001): Modelling of maltodextrin DE12 drying

process in a convection oven, Applied Mathematical Modelling, Vol. 24, 449-462.

16 Geist A., Beguelin A., Dongarra J.J., Jiang W., Manchek R., Sunderam V. (1995): PVM

3.0. A User’s Guide and Tutorial for Networked Parallel Computing, The MIT Press.

17 Goldfarb D., Idnani A. (1983): A numerically stable method for solving strictly convex

quadratic programs, Mathematical Programming, Vol. 27, 1-33.

18 Grippo L., Lampariello F., Lucidi S. (1986): A nonmonotone line search technique for

Newtons’s method, SIAM Journal on Numerical Analysis, Vol. 23, 707-716.

19 Grippo L., Lampariello F., Lucidi S. (1989): A truncated Newton method with

nonmonotone line search for unconstrained optimization, Journal of Optimization Theory and Applications, Vol. 60, 401-419.

20 Grippo L., Lampariello F., Lucidi S. (1991): A class of nonmonotone stabilization methods in

unconstrained optimization, Numerische Mathematik, Vol. 59, 779-805.

21 Han S.-P. (1976): Superlinearly convergent variable metric algorithms for general

nonlinear programming problems, Mathematical Programming, Vol. 11, 263-282.

22 Han S.-P. (1977): A globally convergent method for nonlinear programming, Journal of

Optimization Theory and Applications, Vol. 22, 297 309.

23 Hartwanger C., Schittkowski K., Wolf H. (2000): Computer aided optimal design of horn

radiators for satellite communication, Engineering Optimization, Vol. 33, 221-244.

24 Hock W., Schittkowski K. (1981): Test Examples for Nonlinear Programming Codes,

Lecture Notes in Economics and Mathematical Systems, Vol. 187, Springer.

25 Hock W., Schittkowski K. (1983): A comparative performance evaluation of 21 nonlinear

programming codes, Computing, Vol. 30, 335-358.

26 Ke X., Han J. (1995): A nonmonotone trust region algorithm for equality constrained

optimization, Science in China, Vol. 38A, 683-695.

27 Ke X., Liu G., Xu D. (1996): A nonmonotone trust-region algorithm for unconstrained

optimization, Chinese Science Bulletin, Vol. 41, 197-201.

Page 84: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-38

28 Kneppe G., Krammer J., Winkler E. (1987): Structural optimization of large scale problems

using MBB-LAGRANGE, Report MBB-S-PUB-305, Messerschmitt-Bölkow-Blohm, Munich.

29 Liu D.C., Nocedal J. (1989): On the limited memory BFGS method for large scale

optimization, Mathematical Programming, Vol. 45, 503-528.

30 Lucidi S., Rochetich F, Roma M. (1998): Curvilinear stabilization techniques for truncated

Newton methods in large-scale unconstrained optimization, SIAM Journal on Optimization, Vol. 8, 916-939.

31 Maurer H., Mittelmann H.D. (2000): Optimization techniques for solving elliptic control

problems with control and state constraints: Part 1. Boundary control, Computational Optimization and Applications, Vol. 16, 29-55.

32 Maurer H., Mittelmann H.D. (2001): Optimization techniques for solving elliptic control

problems with control and state constraints. Part 2: Distributed control, Computational Optimization and Applications, Vol. 18, 141-160.

33 Ortega J.M., Rheinbold W.C. (1970): Iterative Solution of Nonlinear Equations in Several

Variables, Academic Press, New York-San Francisco-London.

34 Panier E., Tits A. (1991): Avoiding the Maratos effect by means of a nonmonotone line

search, I: General constrained problems, SIAM Journal on Numerical Analysis, Vol. 28, 1183-1195.

35 Papalambros P.Y., Wilde D.J. (1988): Principles of Optimal Design, Cambridge University

Press.

36 Powell M.J.D. (1978): A fast algorithm for nonlinearly constraint optimization calculations,

in: Numerical Analysis, G.A. Watson ed., Lecture Notes in Mathematics, Vol. 630, Springer.

37 Powell M.J.D. (1978): The convergence of variable metric methods for nonlinearly

constrained optimization calculations, in: Nonlinear Programming 3, O.L. Mangasarian, R.R. Meyer, S.M. Robinson eds., Academic Press.

38 Powell M.J.D. (1983): On the quadratic programming algorithm of Goldfarb and Idnani.

Report DAMTP 1983/Na 19, University of Cambridge, Cambridge.

39 Raydan M. (1997): The Barzilai and Borwein gradient method for the large-scale

unconstrained minimization problem, SIAM Journal on Optimization, Vol. 7, 26-33.

40 Schittkowski K. (1980): Nonlinear Programming Codes, Lecture Notes in Economics and

Mathematical Systems, Vol. 183 Springer.

Page 85: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-39

41 Schittkowski K. (1981): The nonlinear programming method of Wilson, Han and Powell.

Part 1: Convergence analysis, Numerische Mathematik, Vol. 38, 83-114.

42 Schittkowski K. (1981): The nonlinear programming method of Wilson, Han and Powell.

Part 2: An efficient implementation with linear least squares subproblems, Numerische Mathematik, Vol. 38, 115-127.

43 Schittkowski K. (1982): Nonlinear programming methods with linear least squares

subproblems, in: Evaluating Mathematical Programming Techniques, J.M. Mulvey ed., Lecture Notes in Economics and Mathematical Systems, Vol. 199, Springer.

44 Schittkowski K. (1983): Theory, implementation and test of a nonlinear programming

algorithm, in: Optimization Methods in Structural Design, H. Eschenauer, N. Olhoff eds., Wissenschaftsverlag.

45 Schittkowski K. (1983): On the convergence of a sequential quadratic programming

method with an augmented Lagrangian search direction, Mathematische Operations-forschung und Statistik, Series Optimization, Vol. 14, 197-216.

46 Schittkowski K. (1985): On the global convergence of nonlinear programming algorithms,

ASME Journal of Mechanics, Transmissions, and Automation in Design, Vol. 107, 454-458.

47 Schittkowski K. (1985/86): NLPQL: A Fortran subroutine solving constrained nonlinear

programming problems, Annals of Operations Research, Vol. 5, 485-500.

48 Schittkowski K. (1987): More Test Examples for Nonlinear Programming, Lecture Notes

in Economics and Mathematical Systems, Vol. 182, Springer.

49 Schittkowski K. (1988): Solving nonlinear least squares problems by a general purpose

SQP-method, in: Trends in Mathematical Optimization, K. H. Hoffmann, J.- B. Hiriart-Urruty, C. Lemarechal, J. Zowe eds., International Series of Numerical Mathematics,

Vol. 84, , 295-309.

50 Schittkowski K. (1994): Parameter estimation in systems of nonlinear equations,

Numerische Mathematik, Vol. 68, 129-142.

51 Schittkowski K. (2002): Numerical Data Fitting in Dynamical Systems, Kluwer Academic

Publishers, Dordrecht.

52 Schittkowski K. (2002): EASY-FIT: A software system for data fitting in dynamic systems,

Structural and Multidisciplinary Optimization, Vol. 23, No. 2, 153-169.

53 Schittkowski K. (2003): QL: A Fortran code for convex quadratic programming - user’s

guide, Report, Department of Mathematics, University of Bayreuth, 2003.

Page 86: Use of the NLPQLP Sequential Quadratic Programming ... · Use of the NLPQLP Sequential Quadratic Programming Algorithm to Solve Rotorcraft Aeromechanical Constrained Optimisation

A-40

54 Schittkowski K. (2008): An active set strategy for solving optimization problems with up to

200,000,000 nonlinear constraints, Applied Numerical Mathematics, Vol. 59, 2999-3007.

55 Schittkowski K. (2008): An updated set of 306 test problems for nonlinear programming

with validated optimal solutions - user’s guide, Report, Department of Computer Science, University of Bayreuth.

56 Schittkowski K., Zillober C., Zotemantel R. (1994): Numerical comparison of nonlinear

programming algorithms for structural optimization, Structural Optimization, Vol. 7, No. 1, 1-28.

57 Spellucci P (1993): Numerische Verfahren der nichtlinearen Optimierung, .

58 Stoer J. (1985): Foundations of recursive quadratic programming methods for solving

nonlinear programs, in: Computational Mathematical Programming, K. Schittkowski, ed., NATO ASI Series, Series F: Computer and Systems Sciences, Vol. 15, Springer.

59 Toint P.L. (1996): An assessment of nonmontone line search techniques for

unconstrained optimization, SIAM Journal on Scientific Computing, Vol. 17, 725-739.

60 Toint P.L. (1997): A nonmonotone trust-region algorithm for nonlinear optimization

subject to convex constraints, Mathematical Programming, Vol. 77, 69-94.

61 Wolfe P. (1969): Convergence conditions for ascent methods, SIAM Review, Vol. 11,

226-235.

62 Zhou J.L., Tits A. (1993): Nonmonotone line search for minimax problems, Journal of

Optimization Theory and Applications, Vol. 76, 455-476.


Recommended