From 7dfcc480ba1e19bd3232349fc733caef94034292 Mon Sep 17 00:00:00 2001 From: stainer_t Date: Mon, 8 Sep 2025 13:48:49 +0200 Subject: Initial commit from Polytechnique Montreal --- doc/IGE344/SectPLQ.tex | 131 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 doc/IGE344/SectPLQ.tex (limited to 'doc/IGE344/SectPLQ.tex') diff --git a/doc/IGE344/SectPLQ.tex b/doc/IGE344/SectPLQ.tex new file mode 100644 index 0000000..0de8df6 --- /dev/null +++ b/doc/IGE344/SectPLQ.tex @@ -0,0 +1,131 @@ +\subsection{The \texttt{PLQ:} module} + +The {\tt PLQ:} module is used to solve a general non-linear optimization problem with constraints using the Optex method.\cite{optex1,optex2,optex3,PIP2016} +The {\tt PLQ:} module performs a single iteration of the Optex method where a linearized optimization problem is solved with a quadratic constraint. +This quadratic constraint is of the form +$$ +\sum_{i=1}^{\sl nvar} \omega_i \left( \Delta x_i^{(n)}\right)^2 \le \left( S^{(n)}\right)^2 +$$ +\noindent where $\omega_i$ is a weight defined after keyword \moc{CST-WEIGHT} in module {\tt GRAD:} and $\Delta x_i^{(n)}$ is a displacement for +$i$--th control variable at iteration $(n)$. The initial value of radius $S^{(1)}$ is defined after keyword \moc{OUT-STEP-LIM}. + +\vskip 0.08cm + +The gradients of the {\sl system characteristics} can be calculated with module {\tt GRAD:}. The {\tt PLQ:} module is also used to +define options and parameters for the different method to solve the optimization problem and to reduces the radius $S^{(n)}$ of +the quadratic constraint. + +\vskip 0.08cm + +The calling specifications are: + +\begin{DataStructure}{Structure \moc{PLQ:}} +\dusa{OPTIM} \moc{:=} \moc{PLQ:} \dusa{OPTIM} \moc{::} \dstr{plq\_data} +\end{DataStructure} + +\noindent where + +\begin{ListeDeDescription}{mmmmmmmm} + +\item[\dusa{OPTIM}] \texttt{character*12} name of the \dds{optimize} object ({\tt L\_OPTIMIZE} signature) containing the +optimization informations. Object \dusa{OPTIM} must appear on both LHS and RHS to be able to update the previous values. + +\item[\dstr{plq\_data}] structure containing the data to the module \texttt{PLQ:} (see Sect.~\ref{sect:plq_data}). + +\end{ListeDeDescription} +\vskip 0.2cm + +\subsubsection{Data input for module \texttt{PLQ:}}\label{sect:plq_data} + +\begin{DataStructure}{Structure \moc{plq\_data}} +$[$ \moc{EDIT} \dusa{iprint} $]$ \\ +$[~\{$ \moc{MAXIMIZE} $|$ \moc{MINIMIZE} $\}~]$ \\ +$[$ \moc{METHOD} \{ \moc{SIMPLEX} $|$ \moc{LEMKE} $|$ \moc{MAP} $|$ \moc{AUG-LAGRANG} $|$ \moc{PENAL-METH} \} $]$ \\ +$[$ \moc{OUT-STEP-LIM} \dusa{sr} $]$ \\ +$[$ \moc{OUT-STEP-EPS} \dusa{$\epsilon_{ext}$} $]~[$ \moc{INN-STEP-EPS} \dusa{$\epsilon_{inn}$} $]$ \\ +$[$ \moc{CST-QUAD-EPS} \dusa{$\epsilon_{quad}$} $]$ \\ +$[$ \moc{STEP-REDUCT} $\{$ \moc{HALF} $|$ \moc{PARABOLIC} $\}~]$ \\ +$[$ \moc{WARNING-ONLY} $]$ \\ +\moc{CALCUL-DX} $[$ \moc{NO-STORE-OLD} $]$ \\ +$[$ \moc{COST-EXTRAP} {\tt >>} \dusa{ecost} {\tt <<} $]$ \\ +$[$ \moc{OUT-CONV-TST} {\tt >>} \dusa{$l_{conv}$} {\tt <<} $]$ \\ +; +\end{DataStructure} + +\noindent where +\begin{ListeDeDescription}{mmmmmmmm} + +\item[\moc{EDIT}] keyword used to set \dusa{iprint}. + +\item[\dusa{iprint}] index used to control the printing in module. + +\item[\moc{MAXIMIZE}] keyword used to specify that the optimization problem will be a maximization. + +\item[\moc{MINIMIZE}] keyword used to specify that the optimization problem will be a minimization (default). + +\item[\moc{METHOD}] keyword used to define the quasi-linear programming method. {\bf Note:} If the general Lemke method is +used, the quadratic constraint must be active. The strategy consists to proceed in two steps: +\begin{itemize} +\item At first step, the linear programming problem +(i. e., without the quadratic contraint) is solved and the control-variable displacement is computed. If this displacement is less +than the radius of the quadratic constraint, the step one solution is accepted and step two is not performed. If this displacement is greater +than the radius of the quadratic constraint, the step one solution is rejected and step two is performed. Step one can be +solved with the SIMPLEX method or with the linear LEMKE method. +\item At step two, the general LEMKE method is used to find the correct solution. The general Lemke method is based on a parametric linear +complementarity principle, as explained in Ref.~\citen{ferland}. +\end{itemize} + +\item[\moc{SIMPLEX}] keyword used to specify that the SIMPLEX method will be used at step one and the general LEMKE method at step two. + +\item[\moc{LEMKE}] keyword used to specify that the linear LEMKE method will be used at step one and the general LEMKE method at step two. + +\item[\moc{MAP}] keyword used to specify that the MAP method will be used. The quadratic constraint is linearized and a converging sequence +of SIMPLEX calculations is performed. + +\item[\moc{AUG-LAGRANG}] keyword used to specify that the augmented Lagrangian method will be used. + +\item[\moc{PENAL-METH}] keyword used to specify that the penalty method will be used. + +\item[\moc{OUT-STEP-LIM}] keyword used to set or reset the initial radius of the quadratic constraint (default value is \dusa{sr} $=1.0$ or the value +recovered from \dusa{OPTIM}). + +\item[\dusa{sr}] initial radius of the quadratic constraint (real or double precision). + +\item[\moc{OUT-STEP-EPS}] keyword used to set the tolerance of outer iteration convergence inside module {\tt PLQ:} (default value +is $1.0 \times 10^{-4}$). + +\item[\dusa{$\epsilon_{ext}$}] tolerance value (real or double precision). + +\item[\moc{INN-STEP-EPS}] keyword used to set the tolerance used within the SIMPLEX or LEMKE method (default value +is $1.0 \times 10^{-4}$). + +\item[\dusa{$\epsilon_{inn}$}] tolerance value (real or double precision). + +\item[\moc{CST-QUAD-EPS}] keyword to set the convergence parameter \dusa{epsilon4} for the radius of the quadratic constraint inside module {\tt GRAD:}. + +\item[\dusa{$\epsilon_{quad}$}] tolerance for convergence of the radius of the quadratic constraint (real). + +\item[\moc{STEP-REDUCT}] keyword used to define the method of the reduction of the outer step. + +\item[\moc{HALF}] keyword used to specify that the step will be reduced by a factor of 2. + +\item[\moc{PARABOLIC}] keyword used to specify that the step will be reduced with the parabolic method. + +\item[\moc{WARNING-ONLY}] keyword used to specify that only a warning will be used when no valid previous decision vectors can +be recall in case of error of the mathematical programming. + +\item[\moc{CALCUL-DX}] keyword used to specify that the new step will be calculated. + +\item[\moc{NO-STORE-OLD}] keyword used to specify that the old value of decision variables and gradients will not be stored in +the {\tt L\_OPTIMIZE/'OLD-VALUE'} directory. + +\item[\moc{COST-EXTRAP}] keyword used to calculate the extrapolated objective constant \dusa{ecost}. + +\item[\dusa{ecost}] extrapolated objective constant. + +\item[\moc{OUT-CONV-TST}] keyword used to calculate if the external convergence has been reached. + +\item[\dusa{$l_{conv}$}] $=1$ means that external convergence has been reached; $=0$ otherwise. + +\end{ListeDeDescription} +\clearpage -- cgit v1.2.3