/home/coin/svn-release/OS-2.7.0/OS/applications/amplClient/OSAmplClient.cpp File Reference

#include "OSConfig.h"
#include "OSnl2OS.h"
#include "OSosrl2ampl.h"
#include "OSiLReader.h"
#include "OSiLWriter.h"
#include "OSoLReader.h"
#include "OSoLWriter.h"
#include "OSrLReader.h"
#include "OSrLWriter.h"
#include "OSInstance.h"
#include "OSOption.h"
#include "OSResult.h"
#include "OSOutput.h"
#include "OSDefaultSolver.h"
#include "OSCoinSolver.h"
#include "OSFileUtil.h"
#include "OSSolverAgent.h"
#include "OShL.h"
#include "OSErrorClass.h"
#include "CoinError.hpp"
#include "OSCommandLine.h"
#include "OSCommandLineReader.h"
#include "OSRunSolver.h"
#include <sstream>
#include "CoinHelperFunctions.hpp"
#include <iostream>
#include <asl.h>
Include dependency graph for OSAmplClient.cpp:

Go to the source code of this file.

Typedefs

typedef struct yy_buffer_stateYY_BUFFER_STATE

Functions

YY_BUFFER_STATE osss_scan_string (const char *osss, void *scanner)
void setyyextra (OSCommandLine *oscommandline, void *scanner)
int ossslex (void *scanner)
int ossslex_init (void **ptr)
int ossslex_destroy (void *scanner)
std::string get_help ()
void list_options (OSCommandLine *oscommandline)
void solve (OSCommandLine *oscommandline, OSnl2OS *nl2OS)
 Next we have implementations of the six remote service methods solve, send, retrieve, knock, kill, getJobID (Do not bother with local solve; use runSolver instead).
void getJobID (OSCommandLine *oscommandline, OSnl2OS *osnl2os)
void send (OSCommandLine *oscommandline, OSnl2OS *osnl2os)
void kill (OSCommandLine *oscommandline, OSnl2OS *osnl2os)
void retrieve (OSCommandLine *oscommandline, OSnl2OS *osnl2os)
void knock (OSCommandLine *oscommandline, OSnl2OS *osnl2os)
bool findInstance (OSCommandLine *oscommandline, OSnl2OS *nl2os)
 This method tries to find the instance by reading the .nl file.
void makeStrings (OSCommandLine *oscommandline)
void doPrintRow (OSInstance *osinstance, std::string rownumberstring)
void reportResults (OSCommandLine *oscommandline, std::string osrl, OSnl2OS *nl2OS)
 Deal with the OSrL output generated by the call to one of the service methods.
void reportErrors (OSCommandLine *oscommandline, std::string errormsg, OSnl2OS *nl2OS)
 Deal with any error messages generated by the call to one of the service methods.
int main (int argc, char **argv)

Variables

const OSSmartPtr< OSOutputosoutput

Detailed Description

Author:
Robert Fourer, Horand Gassmann, Jun Ma, Kipp Martin
Remarks:
Copyright (C) 2005-2013, Robert Fourer, Horand Gassmann, Jun Ma, Kipp Martin, Northwestern University, and the University of Chicago. All Rights Reserved. This software is licensed under the Eclipse Public License. Please see the accompanying LICENSE file in OS root directory for terms.

This executable is designed to act as a "solver" for AMPL. It can be used to solve problems locally or on a remote server. For example, to solve a problem locally, start AMPL. Let's assume that the model is hs71.mod. Execute the following sequence of commands:

model hs71.mod;
option solver OSAmplClient;
option OSAmplClient_options "-solver bonmin";
solve;
display x1;
you should get:

x1 = 1

display x2;
you should get:

x2 = 4.743

in general, specify options to the OSAmplClient solver by using the AMPL command OSAmplClient_options as another example, if you wanted to solve hs71.mod on a remote server you would do: model hs71.mod;
option solver OSAmplClient;
option OSAmplClient_options "-serviceLocation http://74.94.100.129:8080/OSServer/services/OSSolverService";

there are three possible options to specify:

{itemize}

the name of the solver using the { -solver} option, valid values for this option are { clp}, { cbc}, { dylp}, { ipopt}, { bonmin}, { couenne}, { symphony}, and { vol}.

the location of the remote server using the { -serviceLocation} option

the location of the option file using the { -osol} option

{itemize}

if no options are specified using { OSAmplClient}, by default,for continuous linear models clp is used. For continuous nonlinear models ipopt is used. For mixed-integer linear models (MIP), cbc is used. For mixed-integer nonlinear models bonmin is used. All solvers can be invoked locally or remotely. See the Users Manual in the doc folder for more information.

Definition in file OSAmplClient.cpp.


Typedef Documentation

Definition at line 127 of file OSAmplClient.cpp.


Function Documentation

YY_BUFFER_STATE osss_scan_string ( const char *  osss,
void *  scanner 
)
void setyyextra ( OSCommandLine oscommandline,
void *  scanner 
)

Definition at line 3383 of file OSParseosss.cpp.

int ossslex ( void *  scanner  ) 
int ossslex_init ( void **  ptr  ) 

Definition at line 3211 of file OSParseosss.cpp.

int ossslex_destroy ( void *  scanner  ) 

Definition at line 3302 of file OSParseosss.cpp.

std::string get_help (  ) 

Definition at line 1052 of file OSAmplClient.cpp.

void list_options ( OSCommandLine oscommandline  ) 

Definition at line 2392 of file OSSolverService.cpp.

void solve ( OSCommandLine oscommandline,
OSnl2OS osnl2os 
)

Next we have implementations of the six remote service methods solve, send, retrieve, knock, kill, getJobID (Do not bother with local solve; use runSolver instead).

Definition at line 596 of file OSAmplClient.cpp.

void getJobID ( OSCommandLine oscommandline,
OSnl2OS osnl2os 
)

Definition at line 697 of file OSAmplClient.cpp.

void send ( OSCommandLine oscommandline,
OSnl2OS osnl2os 
)

Definition at line 635 of file OSAmplClient.cpp.

void kill ( OSCommandLine oscommandline,
OSnl2OS osnl2os 
)

Definition at line 864 of file OSAmplClient.cpp.

void retrieve ( OSCommandLine oscommandline,
OSnl2OS osnl2os 
)

Definition at line 803 of file OSAmplClient.cpp.

void knock ( OSCommandLine oscommandline,
OSnl2OS osnl2os 
)

Definition at line 728 of file OSAmplClient.cpp.

bool findInstance ( OSCommandLine oscommandline,
OSnl2OS nl2os 
)

This method tries to find the instance by reading the .nl file.

This is the only acceptable format, since AMPL has just written the content of the model to a temporary file.

Parameters:
oscommandline,: contains the information processed so far
Returns:
whether an instance was found or not

Definition at line 517 of file OSAmplClient.cpp.

void makeStrings ( OSCommandLine oscommandline  ) 

With the options we need to be a little more careful: Options can be in osol and jobID strings (either can be missing) or in an osoption object (which would include both of the above) or missing entirely (in which case a dummy string needs to be created)

Definition at line 541 of file OSAmplClient.cpp.

void doPrintRow ( OSInstance osinstance,
std::string  rownumberstring 
)

Definition at line 1018 of file OSAmplClient.cpp.

void reportResults ( OSCommandLine oscommandline,
std::string  osrl,
OSnl2OS osnl2OS 
)

Deal with the OSrL output generated by the call to one of the service methods.

Definition at line 936 of file OSAmplClient.cpp.

void reportErrors ( OSCommandLine oscommandline,
std::string  errMsg,
OSnl2OS osnl2OS 
)

Deal with any error messages generated by the call to one of the service methods.

Definition at line 994 of file OSAmplClient.cpp.

int main ( int  argc,
char **  argv 
)

Deal with action items: -printLevel, -logFile, -filePrintLevel, --help, --version

Definition at line 162 of file OSAmplClient.cpp.


Variable Documentation

Definition at line 39 of file OSOutput.cpp.


Generated on 24 Jul 2013 by  doxygen 1.6.1