# Changeset 840

Ignore:
Timestamp:
Oct 28, 2006 7:37:50 PM (7 years ago)
Message:

Location:
trunk
Files:
8 edited

Unmodified
Removed
• ## trunk

• Property svn:externals
•  old Win32/v6/Clp       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v6/Clp Win32/v6/Osi       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v6/Osi Win32/v7/CoinUtils https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v7/CoinUtils Win32/v7/Cgl       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v7/Cgl Win32/v7/Clp       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v7/Clp Win32/v7/Osi       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v7/Osi Win32/v8/CoinUtils https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v8/CoinUtils Win32/v8/Cgl       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v8/Cgl Win32/v8/Clp       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v8/Clp Win32/v8/Osi       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v8/Osi
• ## trunk/Externals

 r822 Win32/v6/Clp       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v6/Clp Win32/v6/Osi       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v6/Osi Win32/v7/CoinUtils https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v7/CoinUtils Win32/v7/Cgl       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v7/Cgl Win32/v7/Clp       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v7/Clp Win32/v7/Osi       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v7/Osi Win32/v8/CoinUtils https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v8/CoinUtils Win32/v8/Cgl       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v8/Cgl Win32/v8/Clp       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v8/Clp Win32/v8/Osi       https://projects.coin-or.org/svn/MSVisualStudio/releases/1.0.0/v8/Osi

• ## trunk/SYMPHONY/Doc/man-API.tex

 r829 10 minutes. Level 1 prints out a message every time a new node is created. Level 3 prints out messages describing each iteration of the solution process. Levels beyond 3 print out even more detailed information. Levels beyond 3 print out even more detailed information. To get no output at all, the verbosity level must be set to -2. %There are also two possible graphical interfaces. For graph-based to develop custom applications is provided in Chapter~\ref{man-SYMPHONY}. \section{Getting Help} \label{resources} The main point of entry for additiona help, trouble shooting, and problem-solving is the SYMPHONY Wiki and development Web site at \begin{center} \url{https://projects.coin-or.org/SYMPHONY} \end{center} There, bug reports can be submitted by clicking on the New Ticket'' button and also previous bug reports searched. For general questions, there is a \BB\ also user's mailing list. To subscribe, visit \begin{center} \url{http://list.coin-or.org/mailman/listinfo/coin-symphony} \end{center}
• ## trunk/SYMPHONY/Doc/man-design.tex

 r827 be set by the user. SYMPHONY now generates generic cutting planes using the Cut Generator Library, also available from \htmladdnormallink{COIN}{https://projects.coin-or.org/Cgl} \begin{latexonly} COIN (\url{https://projects.coin-or.org/Cgl}) \end{latexonly}. The CGL can be used to generate cuts in cases where problem-specific cutting planes are not available or not implemented yet. \subsection{The Cut Management Module}
• ## trunk/SYMPHONY/Doc/man-intro.tex

 r825 interactively, and display results and statistics. For Windows users, this means that SYMPHONY can be invoked using the familiar procedure of double-clicking'' on the \texttt{symphony.exe} file in Windows Explorer. double-clicking'' on the \code{symphony.exe} file in Windows Explorer. \item SYMPHONY now supports automatic configuration using the new COIN-OR build There were a few minor changes to the API from the previous version of SYMPHONY to version \VER. First and foremost, the name of the main header file for SYMPHONY has been changed from \texttt{symphony\_api.h} to \texttt{symphony.h} (though the former has been retained for backword compatibility purposes). Second, the user can now execute a primal heuristic in the \ptt{user\_is\_feasible()} callback and return the solution to SYMPHONY, which required the arguments of this function to be changed slightly. Several new subroutines were also added to the callable library API. See the \texttt{README} file included with the distribution for more details. SYMPHONY to version \VER. \begin{itemize} \item First and foremost, the name of the main header file for SYMPHONY has been changed from \code{symphony\_api.h} to \code{symphony.h} (though the former has been retained for backword compatibility purposes). \item The user can now execute a primal heuristic in the \ptt{user\_is\_feasible()} callback and return the solution to SYMPHONY, which required the arguments of this function to be changed slightly. \item Several new subroutines were added to the callable library API. \end{itemize} \section{A Brief History} you are reading now. Chapter \ref{getting_started} describes how to install SYMPHONY from either a source or binary distribution. If you have already managed to get SYMPHONY running using the instructions in the \texttt{README} managed to get SYMPHONY running using the instructions in the \code{README} file, you might want to skip to the next chapter. However, keep in mind that the manual contains additional details for customizing your build. reference use, the HTML version of this manual may be more practical, as the embedded hyperlinks make it easier to navigate. \section{Getting Additional Help} \label{resources} The main point of entry for additiona help, trouble shooting, and problem-solving is the SYMPHONY Wiki and development Web site at \begin{center} \url{https://projects.coin-or.org/SYMPHONY} \end{center} There, bug reports can be submitted by clicking on the New Ticket'' button and also previous bug reports searched. For general questions, there is a \BB\ also user's mailing list. To subscribe, visit \begin{center} \url{http://list.coin-or.org/mailman/listinfo/coin-symphony} \end{center}
• ## trunk/SYMPHONY/Doc/man-start.tex

 r827 %===========================================================================% %FIXME: Where do we put this? %\section{The LP Engine} %SYMPHONY requires the use of a third-party callable library to solve the LP %relaxations once they are formulated. Native interfaces to ILOG's %\htmladdnormallink{CPLEX}{http://www.cplex.com}$^{\copyright}$ %and IBM's %\htmladdnormallink{OSL}{http://www-4.ibm.com/software/data/bi/osl/index.html} %are available. As of Version 4.0, the Open Solver Interface, available from %\htmladdnormallink{COIN}{http://www.coin-or.org} %\begin{latexonly} %(\texttt{http://www.coin-or.org}) %\end{latexonly}. %can be used to interface with most commonly available LP solvers. The list of %solvers with OSI interfaces currently numbers eight and includes both %commercial and open source alternatives. If the COIN libraries are used, make %sure to set the proper paths in the SYMPHONY makefile. %\section{Cut Generation} %SYMPHONY now generates generic cutting planes using the Cut Generator Library, %also available from %\htmladdnormallink{COIN}{http://www.coin-or.org} %\begin{latexonly} %COIN (\texttt{http://www.coin-or.org}) %\end{latexonly}. %The CGL can be used to generate cuts in cases where problem-specific cutting %planes are not available or not implemented yet. This chapter is concerned with detailed instructions for building and installing SYMPHONY, along with its associated libraries and applications. \item To test the callable library, the distribution includes sample files in \code{test} directory:  \\ \\ \underbar{milp.c}: This sample code is an implementation of a basic MILP \code{milp.c}: This sample code is an implementation of a basic MILP solver using SYMPHONY's C callable functions with user defined input (see Section milp \end{verbatim}} \underbar{milpOsi.c}: This sample code is an implementation of a basic MILP \code{milpOsi.c}: This sample code is an implementation of a basic MILP solver using SYMPHONY's C++ callable functions (through OsiSym interface) with user defined input (see Section \ref{OSI}). To test the code, \end{itemize} % Applications?????? % Applications???? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% You can obtain the SYMPHONY source code either via the subversion repository or in the form of daily tarballs. The recommended method is to use subversion because it makes it easier to obtain updates. In a Unix-like environment (such as Linux or CYGWIN), the following command may be used to obtain SYMPHONY from source using SVN in most cases: {\color{Brown} or in the form of fixed releases. The recommended method in Unix is to use subversion because it makes it easier to obtain updates. In a Unix-like environment (such as Linux or CYGWIN), the following command may be used to obtain SYMPHONY from source using SVN in most cases: {\color{Brown} \begin{verbatim} svn checkout https://projects.coin-or.org/svn/SYMPHONY/trunk/ COIN-SYMPHONY {\color{Brown} \begin{verbatim} http://www.coin-or.org/Tarballs/ http://www.coin-or.org/Tarballs/SYMPHONY \end{verbatim} } INSTALL file of the corresponding application. \section{Building From Source Using Microsoft Visual C++} \section{Building From Source Using the Microsoft Visual C++ Compiler} \label{getting_started_windows} Here is a sketch outline of how to compile SYMPHONY in MS Windows. These instructions will lead you through the steps required to compile SYMPHONY as a generic MILP solver. Direct support is provided for compilation with MS Visual Studio 6.0. Compilation for other compilers should also be possible. Note that the Windows version has some limitations. Detailed timing information is not currently provided. Support is only provided for running in sequential mode at this time. First, download \code{SYMPHONY-\VER.tgz} and unpack the archive. This will create a subdirectory called \code{SYMPHONY-\VER} containing all the source files.You now have three options. You can either compile on the command-line using automated MSDEV build system or NMAKE utility or you can use the provided projects and workspaces. Compiling on the command-line is somewhat easier since it requires only typing a single command or editing the makefile. \subsection{Building with the MSDEV Utility} Here is a sketch outline of how to compile SYMPHONY in MS Windows with the MSVC++ compiler. These instructions will lead you through the steps required to compile SYMPHONY as a generic MILP solver. Note that the Windows version has some limitations. Detailed timing information is not currently provided. Support is only provided for running in sequential mode at this time. First, obtain the source code by downloading from \url{https://www.coin-or.org/Tarballs/SYMPHONY/}. Unpack the archive to create the directory \code{SYMPHONY-\VER\bs}. You now have three options. You can either build using the MSVC++ IDE, build on the command-line with MSVC++ executable, or use the NMAKE utility. \subsection{Building with the MSVC++ IDE} \label{using_msvc} These instructions are for MSVC++ Version 6. Instructions for other versions should be similar. \begin{itemize} \item Go to \code{Win32\bs v6} directory and open the workspace \code{symphony.dsw}. \item Note that there are a number of additional preprocessor definitions that control the functionality of SYMPHONY. These definitions are described in \code{sym.mak}, a Unix-style makefile included in the distribution. To enable the functionality associated with a particular definition, simply add it to the list of definitions of \code{libSymphony} project together with the required libraries and paths. For instance, if you want to enable GMPL reader option, you need to \begin{itemize} \item add the directory of the header files of GLPK to the include files path \item add \code{USE\_GLPMPL} to the defines \item add the GLPK library to the workspace \end{itemize} \item Make sure that the project \code{symphony} is set as the active project from the Project/Set Active menu. Choose \code{Build symphony.exe} from the Build menu. This should successfully build the SYMPHONY library and the corresponding executable. \item To test the executable, right click on the symphony project, go to the \code{Debug} tab and set the program arguments to {\color{Brown} \begin{verbatim} -F ..\..\SYMPHONY\Datasets\sample.mps \end{verbatim} } Note that command-line switches are Unix-style. If you want to use the interactive optimizer, leave this tab empty. 4. Now choose \code{Execute} from the Build menu and the solver should solve the given sample problem. If you have not specified the sample problem, then the interactive optimizer should start. In this case, type \code{help} or \code{?} to see a list of available commands \end{itemize} Note that there is some functionality missing from the Windows version. Most prominently, the timing functions do not work. This functionality should be easy to add---let me know if you are interested in doing it and I will give you all the help I can. In addition, the Windows version will only run in sequential mode for a variety of reasons. However, it should be relatively easy to get it running in parallel if you can get PVM working under Windows. Let me know if you are interested. \subsection{Building in a Windows Terminal} \label{using_msdev} These instructions are for MSVC++ Version 6. Instructions for other versions should be similar. \begin{itemize} \item Open a command terminal (choose Run'' on the Start menu and type \subsection{Building with the NMAKE Utility} \label{using_nmake} These instructions are for MSVC++ Version 6. Instructions for other versions should be similar. \begin{itemize} \end{itemize} \subsection{Building with the MSVC++ Workspace} \label{using_msvc} \begin{itemize} \item Go to \code{Win32\bs v6} directory and open the workspace \code{symphony.dsw}. \item Note that there are a number of additional preprocessor definitions that control the functionality of SYMPHONY. These definitions are described in \code{sym.mak}, a Unix-style makefile included in the distribution. To enable the functionality associated with a particular definition, simply add it to the list of definitions of \code{libSymphony} project together with the required libraries and paths. For instance, if you want to enable GMPL reader option, you need to \begin{itemize} \item add the directory of the header files of GLPK to the include files path \item add \code{USE\_GLPMPL} to the defines \item add the GLPK library to the workspace \end{itemize} \item Make sure that the project \code{symphony} is set as the active project from the Project/Set Active menu. Choose \code{Build symphony.exe} from the Build menu. This should successfully build the SYMPHONY library and the corresponding executable. \item To test the executable, right click on the symphony project, go to the \code{Debug} tab and set the program arguments to {\color{Brown} \begin{verbatim} -F ..\..\SYMPHONY\Datasets\sample.mps \end{verbatim} } Note that command-line switches are Unix-style. If you want to use the interactive optimizer, leave this tab empty. 4. Now choose \code{Execute} from the Build menu and the solver should solve the given sample problem. If you have not specified the sample problem, then the interactive optimizer should start. In this case, type \code{help} or \code{?} to see a list of available commands \end{itemize} Note that there is some functionality missing from the Windows version. Most prominently, the timing functions do not work. This functionality should be easy to add---let me know if you are interested in doing it and I will give you all the help I can. In addition, the Windows version will only run in sequential mode for a variety of reasons. However, it should be relatively easy to get it running in parallel if you can get PVM working under Windows. Let me know if you are interested. \subsection{Building SYMPHONY Applications} In order to compile SYMPHONY's applications in the Microsoft Visual C++ environment, download \code{SYMPHONY-\VER} and unpack the archive as described eariler. You then have three options. You can either compile on the command-line using the automated MSDEV build system or NMAKE utility or you can use the provided projects and workspaces. All of the following commands should be executed in the \code{SYMPHONY\bs Applications\bs XXX\bs Win32\bs v6} directory, where \code{XXX} is the name of the application to be built. \subsubsection{Using the MSDEV Utility} environment, obtain the source code as described eariler. As before, you then have three options. You can either build using the MSVC++ IDE, build on the command-line with MSVC++ executable, or use the NMAKE utility. The below instructions are for MSVC++ Version 6, but building in other versions should be similar. All of the following commands should be executed in the \code{SYMPHONY-\VER\bs Applications\bs XXX\bs Win32\bs v6} directory, where \code{XXX} is the name of the application to be built. \subsubsection{Building With the MSVC++ IDE} \begin{itemize} \item Open the workspace \code{xxx.dsw}. \item The configuration steps are exactly the same as that described in Section \ref{using_msvc}. The only difference is that you are using the \texttt{xxx} project instead of the \texttt{symphony} project. Go through the same steps to configure. \item Once you have the proper settings, choose \code{Build xxx.exe} from the \code{Build} menu. This should successfully build the executable. \item To test the executable, right click on the \code{xxx} project, go to the \code{Debug\bs} tab and set the program arguments to \code{-F ..\bs ..\bs sample.xxx}. Note that command-line switches are Unix-style. \item Now choose \code{Execute} from the build menu and you have a working branch and bound solver. \end{itemize} \subsubsection{Building in a Windows Terminal} \begin{itemize} \item Open a command terminal (choose Run'' on the Start menu and type \end{itemize} \subsubsection{Using the MSVC++ Workspace} \begin{itemize} \item Open the workspace \code{xxx.dsw}. \item The configuration steps are exactly the same as that described in Section \ref{using_msvc}. The only difference is that you are using the \texttt{xxx} project instead of the \texttt{symphony} project. Go through the same steps to configure. \item Once you have the proper settings, choose \code{Build xxx.exe} from the \code{Build} menu. This should successfully build the executable. \item To test the executable, right click on the \code{xxx} project, go to the \code{Debug\bs} tab and set the program arguments to \code{-F ..\bs ..\bs sample.xxx}. Note that command-line switches are Unix-style. \item Now choose \code{Execute} from the build menu and you have a working branch and bound solver. \end{itemize} \section{The LP Engine} SYMPHONY requires the use of a third-party callable library to solve the LP relaxations once they are formulated. The LP solver is called through Open Solver Interface, also available from \htmladdnormallink{COIN}{https://projects.coin-or.org/Osi} \begin{latexonly} (\texttt{https://projects.coin-or.org/Osi}) \end{latexonly}. The list of solvers with OSI interfaces currently numbers eight and includes both commercial and open source alternatives. By default, SYMPHONY now uses the Coin LP solver (Clp). However, if another LP solver is desired, this is possible by changing the configuration settings.