1package com.gams.examples.transport;
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 +
":");
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" +
GAMSParameter getParameter(String identifier)
GAMSVariable getVariable(String identifier)
T findRecord(String ... keys)
void setSystemDirectory(String directory)
void setWorkingDirectory(String directory)
GAMSJob addJobFromString(String source)
GAMSCheckpoint addCheckpoint()
This example shows how to run multiple GAMSJobs in parallel using a GAMSCheckpoint.
Provides package namespace for Java interface and examples to General Algebraic Model System (GAMS).