1function transport13(varargin)
3 % check workspace info from arguments
5 wsInfo = gams.control.WorkspaceInfo();
6 wsInfo.systemDirectory = varargin{1};
7 ws = gams.control.Workspace(wsInfo);
9 ws = gams.control.Workspace();
13 plants = {
'Seattle',
'San-Diego'};
14 markets = {
'New-York',
'Chicago',
'Topeka'};
15 capacity = containers.Map();
16 capacity(
'Seattle') = 350;
17 capacity(
'San-Diego') = 600;
18 demand = containers.Map();
19 demand(
'New-York') = 325;
20 demand(
'Chicago') = 300;
21 demand(
'Topeka') = 275;
22 distance = containers.Map();
23 distance(
'Seattle.New-York') = 2.5;
24 distance(
'Seattle.Chicago') = 1.7;
25 distance(
'Seattle.Topeka') = 1.8;
26 distance(
'San-Diego.New-York') = 2.5;
27 distance(
'San-Diego.Chicago') = 1.8;
28 distance(
'San-Diego.Topeka') = 1.4;
30 t = TransportModel(ws);
41 rec = t.a.addRecord(p{1});
42 rec.value = capacity(p{1});
46 rec = t.b.addRecord(m{1});
47 rec.value = demand(m{1});
52 rec = t.d.addRecord(p{1}, m{1});
53 rec.value = distance([p{1},
'.', m{1}]);
57 rec = t.f.addRecord();
60 t.opt.setAllModelTypes(
'cplex');
61 t.run([], gams.control.PrintStream());
63 fprintf(
'Objective: %g\n', t.z.record.level);
66 fprintf(
'x(%s,%s): level=%g marginal=%g\n', x{1}.keys{:}, x{1}.level, x{1}.marginal);