<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Please help in Mathematical Optimization, Discrete-Event Simulation, and OR</title>
    <link>https://communities.sas.com/t5/Mathematical-Optimization/Please-help/m-p/133523#M713</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Am pretty new to SAS/OR and to start with, am just trying to solve a simple assignment problem. Three carriers (Carrier 1, Carrier 2, Carrier 3) and three lanes (Lane 1, Lane 2, Lane 3) with their rates. Simple formulation to minimize the cost such that one carrier is assigned one lane and vice-versa. My Data sets are as below. Something is wrong in my coede, not understand what should I do to make it work ?? Please guide !!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA&lt;/P&gt;&lt;P&gt;Carrier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Lane&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RatePerMile&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;TABLE height="221.66666662693024" style="width: 184.66666662693024px; height: 219.66666662693024px;" width="183.66666662693024"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Carrier 1&lt;/TD&gt;&lt;TD&gt;Lane 1&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 1&lt;/TD&gt;&lt;TD&gt;Lane 2&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 1&lt;/TD&gt;&lt;TD&gt;Lane 3&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 2&lt;/TD&gt;&lt;TD&gt;Lane 1&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 2&lt;/TD&gt;&lt;TD&gt;Lane 2&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 2&lt;/TD&gt;&lt;TD&gt;Lane 3&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 3&lt;/TD&gt;&lt;TD&gt;Lane 1&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 3&lt;/TD&gt;&lt;TD&gt;Lane 2&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 3&lt;/TD&gt;&lt;TD&gt;Lane 3&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA1&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;One&lt;/TD&gt;&lt;TD&gt;Carrier 1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Two&lt;/TD&gt;&lt;TD&gt;Carrier 2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Three&lt;/TD&gt;&lt;TD&gt;Carrier 3&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA2&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;One&lt;/TD&gt;&lt;TD&gt;Lane 1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Two&lt;/TD&gt;&lt;TD&gt;Lane 2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Three&lt;/TD&gt;&lt;TD&gt;Lane 3&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have introduced binary variable and my code as below-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc optmodel;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set &amp;lt;string, string&amp;gt; BIDS;&lt;/P&gt;&lt;P&gt;&amp;nbsp; number RatePerMile {BIDS} init 0;&amp;nbsp;&amp;nbsp; /*parameters*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; Read data Optimize.data&lt;/P&gt;&lt;P&gt;&amp;nbsp; into BIDS = [Carrier Lane]&lt;/P&gt;&lt;P&gt;&amp;nbsp; RatePerMile;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set &amp;lt;string&amp;gt; CARRIERS;&lt;/P&gt;&lt;P&gt;&amp;nbsp; string CarrierName {CARRIERS};&amp;nbsp; /*parameters*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; Read data Optimize.data1&lt;/P&gt;&lt;P&gt;&amp;nbsp; into CARRIERS = [CarrierID]&lt;/P&gt;&lt;P&gt;&amp;nbsp; CarrierName;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set &amp;lt;string&amp;gt; LANES;&lt;/P&gt;&lt;P&gt;&amp;nbsp; string LaneName {LANES};&amp;nbsp; /*parameters*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; Read data OPTIMIZE.DATA2&lt;/P&gt;&lt;P&gt;&amp;nbsp; into LANES = [LaneID]&lt;/P&gt;&lt;P&gt;&amp;nbsp; LaneName;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*decision variables */&lt;/P&gt;&lt;P&gt;&amp;nbsp; var Assigned_Truckloads{BIDS} binary;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*constraints */&lt;/P&gt;&lt;P&gt;/* 1.. One carrier to One Lane. */&lt;/P&gt;&lt;P&gt;&amp;nbsp; constraint CarrierToOneLane {ll in LANES}:&lt;/P&gt;&lt;P&gt;&amp;nbsp; sum{&amp;lt;i,j&amp;gt; in BIDS:(j=ll)} Assigned_Truckloads[i,j] = 1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* 2.. One Lane to one carrier.*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; constraint LaneToOneCarrier {ii in CARRIERS}:&lt;/P&gt;&lt;P&gt;&amp;nbsp; sum{&amp;lt;i,j&amp;gt; in BIDS:(i=ii) } Assigned_Truckloads[i,j] = 1; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*objective function*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; min Total_Cost = &lt;/P&gt;&lt;P&gt;&amp;nbsp; sum{&amp;lt;i,j&amp;gt; in BIDS}&lt;/P&gt;&lt;P&gt;&amp;nbsp; RatePerMile[i,j] * Assigned_Truckloads[i,j];&lt;/P&gt;&lt;P&gt;&amp;nbsp; solve;&lt;/P&gt;&lt;P&gt;&amp;nbsp; expand;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 10 May 2013 14:54:58 GMT</pubDate>
    <dc:creator>MikeCarter</dc:creator>
    <dc:date>2013-05-10T14:54:58Z</dc:date>
    <item>
      <title>Please help</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Please-help/m-p/133523#M713</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Am pretty new to SAS/OR and to start with, am just trying to solve a simple assignment problem. Three carriers (Carrier 1, Carrier 2, Carrier 3) and three lanes (Lane 1, Lane 2, Lane 3) with their rates. Simple formulation to minimize the cost such that one carrier is assigned one lane and vice-versa. My Data sets are as below. Something is wrong in my coede, not understand what should I do to make it work ?? Please guide !!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA&lt;/P&gt;&lt;P&gt;Carrier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Lane&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RatePerMile&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;TABLE height="221.66666662693024" style="width: 184.66666662693024px; height: 219.66666662693024px;" width="183.66666662693024"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Carrier 1&lt;/TD&gt;&lt;TD&gt;Lane 1&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 1&lt;/TD&gt;&lt;TD&gt;Lane 2&lt;/TD&gt;&lt;TD&gt;14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 1&lt;/TD&gt;&lt;TD&gt;Lane 3&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 2&lt;/TD&gt;&lt;TD&gt;Lane 1&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 2&lt;/TD&gt;&lt;TD&gt;Lane 2&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 2&lt;/TD&gt;&lt;TD&gt;Lane 3&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 3&lt;/TD&gt;&lt;TD&gt;Lane 1&lt;/TD&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 3&lt;/TD&gt;&lt;TD&gt;Lane 2&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Carrier 3&lt;/TD&gt;&lt;TD&gt;Lane 3&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA1&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;One&lt;/TD&gt;&lt;TD&gt;Carrier 1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Two&lt;/TD&gt;&lt;TD&gt;Carrier 2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Three&lt;/TD&gt;&lt;TD&gt;Carrier 3&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA2&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;One&lt;/TD&gt;&lt;TD&gt;Lane 1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Two&lt;/TD&gt;&lt;TD&gt;Lane 2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Three&lt;/TD&gt;&lt;TD&gt;Lane 3&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have introduced binary variable and my code as below-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc optmodel;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set &amp;lt;string, string&amp;gt; BIDS;&lt;/P&gt;&lt;P&gt;&amp;nbsp; number RatePerMile {BIDS} init 0;&amp;nbsp;&amp;nbsp; /*parameters*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; Read data Optimize.data&lt;/P&gt;&lt;P&gt;&amp;nbsp; into BIDS = [Carrier Lane]&lt;/P&gt;&lt;P&gt;&amp;nbsp; RatePerMile;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set &amp;lt;string&amp;gt; CARRIERS;&lt;/P&gt;&lt;P&gt;&amp;nbsp; string CarrierName {CARRIERS};&amp;nbsp; /*parameters*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; Read data Optimize.data1&lt;/P&gt;&lt;P&gt;&amp;nbsp; into CARRIERS = [CarrierID]&lt;/P&gt;&lt;P&gt;&amp;nbsp; CarrierName;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set &amp;lt;string&amp;gt; LANES;&lt;/P&gt;&lt;P&gt;&amp;nbsp; string LaneName {LANES};&amp;nbsp; /*parameters*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; Read data OPTIMIZE.DATA2&lt;/P&gt;&lt;P&gt;&amp;nbsp; into LANES = [LaneID]&lt;/P&gt;&lt;P&gt;&amp;nbsp; LaneName;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*decision variables */&lt;/P&gt;&lt;P&gt;&amp;nbsp; var Assigned_Truckloads{BIDS} binary;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*constraints */&lt;/P&gt;&lt;P&gt;/* 1.. One carrier to One Lane. */&lt;/P&gt;&lt;P&gt;&amp;nbsp; constraint CarrierToOneLane {ll in LANES}:&lt;/P&gt;&lt;P&gt;&amp;nbsp; sum{&amp;lt;i,j&amp;gt; in BIDS:(j=ll)} Assigned_Truckloads[i,j] = 1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* 2.. One Lane to one carrier.*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; constraint LaneToOneCarrier {ii in CARRIERS}:&lt;/P&gt;&lt;P&gt;&amp;nbsp; sum{&amp;lt;i,j&amp;gt; in BIDS:(i=ii) } Assigned_Truckloads[i,j] = 1; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*objective function*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; min Total_Cost = &lt;/P&gt;&lt;P&gt;&amp;nbsp; sum{&amp;lt;i,j&amp;gt; in BIDS}&lt;/P&gt;&lt;P&gt;&amp;nbsp; RatePerMile[i,j] * Assigned_Truckloads[i,j];&lt;/P&gt;&lt;P&gt;&amp;nbsp; solve;&lt;/P&gt;&lt;P&gt;&amp;nbsp; expand;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 May 2013 14:54:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Please-help/m-p/133523#M713</guid>
      <dc:creator>MikeCarter</dc:creator>
      <dc:date>2013-05-10T14:54:58Z</dc:date>
    </item>
    <item>
      <title>Re: Please help</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Please-help/m-p/133524#M714</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mike,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your code overall looks reasonable. One thing I would do is use a single dataset and derive the LANES and CARRIER sets from BIDS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should get more specific answers if you post your log file. Where exactly are you stuck?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 May 2013 03:52:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Please-help/m-p/133524#M714</guid>
      <dc:creator>LeoLopes</dc:creator>
      <dc:date>2013-05-11T03:52:32Z</dc:date>
    </item>
    <item>
      <title>Re: Please help</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Please-help/m-p/133525#M715</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Leo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank a bunch for looking into my code. I figured out thatmy CARRIERS and LANES sets had different values (One, Two &amp;amp; Three), whereas the SUM statement was looping over rates data set DATA (Carrier1..Lane1....). Hence it was going infeasible. I took out that CarrierID column (One, Two, Three) and made CarrierName as actual "key index" column contianing actual index values.And it worked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for confusion, long story short- I was not reading consisetent data and hence error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your time though,&lt;/P&gt;&lt;P&gt;-Mike&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 May 2013 15:41:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Please-help/m-p/133525#M715</guid>
      <dc:creator>MikeCarter</dc:creator>
      <dc:date>2013-05-14T15:41:21Z</dc:date>
    </item>
    <item>
      <title>Re: Please help</title>
      <link>https://communities.sas.com/t5/Mathematical-Optimization/Please-help/m-p/133526#M716</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No problem!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 May 2013 15:43:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Mathematical-Optimization/Please-help/m-p/133526#M716</guid>
      <dc:creator>LeoLopes</dc:creator>
      <dc:date>2013-05-14T15:43:41Z</dc:date>
    </item>
  </channel>
</rss>

