17    public static void main(String[] args) {
 
   23        File workingDirectory = 
new File(System.getProperty(
"user.dir"), 
"Transport6");
 
   24        workingDirectory.mkdir();
 
   35        double[] bmultlist = 
new double[] { 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3 };
 
   38        Object lockObject = 
new Object();
 
   39        Scenario[] scenarios = 
new Scenario[bmultlist.length];
 
   40        for (
int i=0; i<bmultlist.length; i++) {
 
   41            scenarios[i] = 
new Scenario(ws, cp, lockObject, bmultlist[i]);
 
   44        for (
int i=0; i<bmultlist.length; i++) {
 
   47            } 
catch (InterruptedException e) {
 
   53    static class Scenario 
extends Thread {
 
   67            GAMSJob t6 = workspace.
addJobFromString(
"bmult=" + bmult + 
"; solve transport min z use lp; ms=transport.modelstat; ss=transport.solvestat;", checkpoint);
 
   71            synchronized (lockObject) {
 
   72                System.out.println(
"Scenario bmult=" + bmult + 
":");
 
   73                System.out.println(
"  Modelstatus: " + GAMSGlobals.ModelStat.lookup( (
int) t6.
OutDB().
getParameter(
"ms").findRecord().getValue() ));
 
   74                System.out.println(
"  Solvestatus: " + GAMSGlobals.SolveStat.lookup( (
int)t6.
OutDB().
getParameter(
"ss").findRecord().getValue() ));
 
   75                System.out.println(
"  Obj: " + t6.
OutDB().
getVariable(
"z").findRecord().getLevel());
 
   84            "      i   canning plants   / seattle, san-diego /                       \n" +
 
   85            "      j   markets          / new-york, chicago, topeka / ;              \n" +
 
   88            "    a(i)  capacity of plant i in cases                                  \n" +
 
   90            "                san-diego   600  /                                      \n" +
 
   92            "    b(j)  demand at market j in cases                                   \n" +
 
   93            "           /    new-york    325                                         \n" +
 
   95            "                topeka      275  / ;                                    \n" +
 
   97            "Table d(i,j)  distance in thousands of miles                            \n" +
 
   98            "             new-york       chicago      topeka                         \n" +
 
   99            "seattle        2.5           1.7          1.8                           \n" +
 
  100            "san-diego      2.5           1.8          1.4  ;                        \n" +
 
  102            "Scalar f      freight in dollars per case per thousand miles  /90/ ;    \n" +
 
  103            "Scalar bmult  demand multiplier /1/;                                    \n" +
 
  105            "Parameter c(i,j)  transport cost in thousands of dollars per case ;     \n" +
 
  106            "          c(i,j) = f * d(i,j) / 1000 ;                                  \n" +
 
  109            "    x(i,j)  shipment quantities in cases                                \n" +
 
  110            "    z       total transportation costs in thousands of dollars ;        \n" +
 
  112            "Positive Variable x ;                                                   \n" +
 
  115            "      cost        define objective function                             \n" +
 
  116            "      supply(i)   observe supply limit at plant i                       \n" +
 
  117            "      demand(j)   satisfy demand at market j ;                          \n" +
 
  119            "  cost ..        z  =e=  sum((i,j), c(i,j)*x(i,j)) ;                    \n" +
 
  121            "  supply(i) ..   sum(j, x(i,j))  =l=  a(i) ;                            \n" +
 
  123            "  demand(j) ..   sum(i, x(i,j))  =g=  bmult*b(j) ;                      \n" +
 
  125            "Model transport /all/ ;                                                 \n" +
 
  126            "Scalar ms 'model status', ss 'solve status';                            \n" +