mirror of https://github.com/CGAL/cgal
66 lines
2.0 KiB
TeX
66 lines
2.0 KiB
TeX
\begin{ccRefClass}{Linear_program<NT>}
|
|
|
|
\ccInclude{CGAL/QP_models.h}
|
|
|
|
\ccDefinition
|
|
An object of class \ccRefName\ describes a linear program of the form
|
|
%%
|
|
\begin{eqnarray*}
|
|
\mbox{(QP)}& \mbox{minimize} & c^{T}x+c_0 \\
|
|
&\mbox{subject to} & Ax\qprel b, \\
|
|
& & l \leq x \leq u
|
|
\end{eqnarray*}
|
|
%%
|
|
in $n$ real variables $x=(x_0,\ldots,x_{n-1})$.
|
|
Here,
|
|
\begin{itemize}
|
|
\item $A$ is an $m\times n$ matrix (the constraint matrix),
|
|
\item $b$ is an $m$-dimensional vector (the right-hand side),
|
|
\item $\qprel$ is an $m$-dimensional vector of relations
|
|
from $\{\leq, =, \geq\}$,
|
|
\item $l$ is an $n$-dimensional vector of lower
|
|
bounds for $x$,
|
|
\item $u$ is an $n$-dimensional vector of upper bounds for
|
|
$x$,
|
|
\item $c$ is an $n$-dimensional vector (the linear objective
|
|
function), and
|
|
\item $c_0$ is a constant.
|
|
\end{itemize}
|
|
|
|
This class copies the program data from given iterator ranges; this
|
|
is useful if the iterators that you have are not random-access.
|
|
The time taken to copy the data is $\Theta(nm+n^2)$, though, even if
|
|
the program description is very sparse. Usually,
|
|
you only need to wrap existing (random-access)
|
|
iterators, and then you may use the classes
|
|
\ccc{Linear_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, C_it>} and \ccc{Linear_program_from_pointers<NT>}).
|
|
|
|
\ccIsModel
|
|
\ccc{LinearProgramInterface}
|
|
|
|
\ccCreation
|
|
\ccIndexClassCreation
|
|
\ccCreationVariable{lp}
|
|
|
|
The following constructor is a template, so you can provide input
|
|
iterators of any types.
|
|
|
|
\ccConstructor{Linear_program_from_iterators(int n, int m,
|
|
const A_iterator& a,
|
|
const B_iterator& b,
|
|
const R_iterator& r,
|
|
const FL_iterator& fl,
|
|
const L_iterator& l,
|
|
const FU_iterator& fu,
|
|
const U_iterator& u,
|
|
const C_iterator& c,
|
|
const std::iterator_traits<C_iterator>value_type& c0 = 0
|
|
)}{constructs \ccVar\ from given input iterators and the constant \ccc{c0}.}
|
|
|
|
\ccSeeAlso
|
|
\ccc{Linear_program_from_iterators<A_it, B_it, R_it, FL_it, L_it, FU_it, U_it, D_it, C_it>}\\
|
|
\ccc{Linear_program_from_pointers<NT>}
|
|
|
|
|
|
\end{ccRefClass}
|