\documentclass[11pt,twoside]{article}

\newcommand{\HW}{}
\newcommand{\HWnumb}{1}
\newcommand{\HWdate}{Wednesday April 17}
\input{hw0}
\input{../notes/macros.tex}
\thispagestyle{empty}


NEOS (\url{https://neos-server.org/neos/}) is a free service
developed originally at Argonne National Laboratory and now hosted by
the University of Wisconsin, Madison.  It allows us to submit
optimization problems in various formats (AMPL, GAMS, CPLEX, MPS, C,
Fortran, \dots) to be solved remotely on geographically distributed
machines by a range of solvers.

It will be worthwhile for everyone to learn about submitting an
optimization problem to NEOS. % (\url{https://neos-server.org/neos/}).
%NEOS allows you to send problem data (as a zip file) and runtime
%parameters for the solver as a separate (small) file, and it returns
%results to you via the web.
Homework 1 involves one of the multiscale systems biology LP problems
stored here in MPS format as zip files:
\url{http://stanford.edu/group/SOL/multiscale/models/quadLP/MPS/}.

%\bigskip

\begin{enumerate}
\item Download data file {\tt TMA\_ME.zip} (a model of
  \emph{Thermotoga maritima Metabolism and macromolecular
    Expression}).  From \cite{DQQ}, the optimal objective value
    should be 8.7036315385e-07 (but double-precision solvers are
    unlikely to obtain this value).

\item Submit {\tt TMA\_ME} to NEOS specifying the SoPlex80bit solver
  with default parameters.  Use {\tt TMA\_ME.zip} itself
  (no need to unzip) and no parameters file.  Summarize the results
  you obtain.

\item One parameter has default value {\tt bool:lifting = false}.
%  int:simplifier = 1
Run the same problem and solver with a parameter file specifying
{\tt bool:lifting = true}.
Describe any difference you see in solver performance.

%\item If you wish, experiment with a few other parameters and summarize
%  the results in another table.
\end{enumerate}

%\bigskip


\subsection*{Notes}

SoPlex80bit is run on a server at Arizona State University.
Apparently certain default parameter values are specified here:
\\ \hspace*{10pt}
   \url{http://plato.asu.edu/soplex/default.set}
\\ although that's different from the official set of parameters here:
\\ \hspace*{10pt}
   \url{http://soplex.zib.de/doc/html/PARSLIST.php}
\\ For SoPlex80bit, the NEOS submission form chooses Parsing mode
``rational/integer'' and Solving mode ``exact with rational factorization'',
which probably correspond to options
\begin{verbatim}
   int:readmode = 1
   int:solvemode = 1
\end{verbatim}
Please specify {\tt 0} in your parameter file to get floating-point
for both options.

There are rather many parameters!
Don't worry about their meaning at this stage;
just know that typical optimization solvers allow users to specify
certain options that might be helpful for any particular problem.
Most parameters have sensible values by default, and it's best to
experiment with them just one at a time.

\newpage

Multiscale problems cause difficulty for solvers because of large
entries in the constraint matrix.  Solvers are likely to scale the
data and solve the scaled problem reasonably well, but when they
unscale the solution, certain residuals are magnified and the solution
may no longer satisfy the feasibility and optimality tests.

Reference \cite{SunFTS2013} applies the concept of ``lifting'' to the
biology problems.  Extra variables and constraints are added to obtain
an equivalent problem that has fewer large entries in the constraint
matrix.  Ideally, less damage will be done to the solution when it is
unscaled.

Reference \cite{DQQ} describes a more reliable procedure for solving
the biology models (and other challenging problems) using both
double-precision and quadruple-precision versions of MINOS.


\begin{footnotesize}
  \frenchspacing
  \bibliographystyle{plain}
  \bibliography{../notes/refs}
\end{footnotesize}

\end{document}






Beware that the NEOS Server submission form sets two more options
so that the ``default'' with no parameter file actually uses
