<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.6618.1">
<TITLE>Need help on coinMP</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<BR>

<P><FONT COLOR="#000000" SIZE=2 FACE="Arial">Hi,</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Arial">I am using coinMP to solve large scale vehicle allocation problems.</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Arial">I have a MS Visual Studio C&#43;&#43; application that creates the problem by obtaining fleet information and booking requests from an MS SQL Server, and then passes on the problem to coinMP via CoinLoadProblem. Unfortunately, coinMP crashes when the problem seems to be &quot;big&quot;. (My biggest problem has 5700 bookings, 1800 vehicles. MPS file&nbsp; will have 726000 columns, 148000 rows)</FONT></P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Arial">I've pinpointed the line/s&nbsp; where the coinMP error seems to occur.</FONT>
</P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Arial">I am hoping you can give insights or suggestion on the solution.</FONT>
</P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Arial">The relevant block of code from&nbsp; CoinLoadProblem is given below . </FONT>
</P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Arial">==================</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp; pCoin-&gt;clp-&gt;loadProblem(ColCount, RowCount, MatrixBegin, MatrixIndex, MatrixValues,LowerBounds, UpperBounds, ObjectCoeffs, pCoin-&gt;RowLower, pCoin-&gt;RowUpper);</FONT></P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">std::vector&lt;std::string&gt; rowNameList;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">rowNameList.reserve(RowCount);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">for (i = 0; i &lt; RowCount; i&#43;&#43;) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp; try {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">rowNameList.push_back(RowNames[i]);</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">std::vector&lt;std::string&gt; colNameList;</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">colNameList.reserve(ColCount);</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">for (i = 0; i &lt; ColCount; i&#43;&#43;) {</FONT>

<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">colNameList.push_back(ColNames[i]);</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT COLOR="#000000" SIZE=2 FACE="Courier New">pCoin-&gt;clp-&gt;copyNames(rowNameList, colNameList);</FONT>
</P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Courier New">=============</FONT>
</P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Arial">Here are my observations.</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Arial">1. clp-&gt;</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">loadProblem goes through. pCoin is the coin problem object. Clp is the Coin LP object.</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Courier New">2. If Rowcount is &quot;big&quot;, around 10000, the rowNameList.reserve goes through but the first push back (i=0) fails. RowNames[0] is NULL. RowNames</FONT> <FONT COLOR="#000000" SIZE=2 FACE="Arial">should not be NULL.</FONT></P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Courier New">3. If Rowcount is small but ColCount</FONT><FONT COLOR="#000000" SIZE=2 FACE="Arial"> is</FONT> <FONT COLOR="#000000" SIZE=2 FACE="Courier New">&quot;big&quot;, around 10000, the colNameList.reserve goes through but the first push back (i=0) fails. ColNames[0] is NULL. ColNames</FONT> <FONT COLOR="#000000" SIZE=2 FACE="Arial">should not be NULL.</FONT></P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Arial">4</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">. The er</FONT><FONT COLOR="#000000" SIZE=2 FACE="Arial">r</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">or message from MS Studio is : &quot;Unhandled exception at 0x7c901010 in</FONT> <FONT COLOR="#000000" SIZE=2 FACE="Arial">Alloc</FONT><FONT COLOR="#000000" SIZE=2 FACE="Courier New">Test.exe: 0C0000005: Access violation reading location 0x00000014.&quot;</FONT></P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Courier New">5. I haven't found anything that limits the size of the problem. Where in coinMP are these set, if any?</FONT>
</P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Courier New">Thanks</FONT><FONT COLOR="#000000" SIZE=2 FACE="Arial"> in advance for any assistance.</FONT>
</P>

<P><FONT COLOR="#000000" SIZE=2 FACE="Arial">Leo Marquez</FONT>

<BR><FONT COLOR="#000000" SIZE=2 FACE="Arial">leorey.marquez@csiro.au</FONT>
</P>
<BR>

<P><FONT SIZE=2 FACE="Courier New">=======================</FONT>
</P>

</BODY>
</HTML>