Main(
string[] args)
24 if(Environment.GetCommandLineArgs().Length > 1)
25ws =
new GAMSWorkspace(systemDirectory: Environment.GetCommandLineArgs()[1]);
36opt.AllModelTypes =
"xpress";
39Console.WriteLine(
"x("+ rec.Key(0) +
","+ rec.Key(1) +
"): level="+ rec.
Level+
" marginal="+ rec.
Marginal);
41WriteToAccess(ws, t9.OutDB);
46 static voidReadSet(OleDbConnection connect,
GAMSDatabasedb,
stringstrAccessSelect,
stringsetName,
intsetDim,
stringsetExp =
"")
50OleDbCommand cmd =
newOleDbCommand(strAccessSelect, connect);
53OleDbDataReader reader = cmd.ExecuteReader();
55 if(reader.FieldCount != setDim)
57Console.WriteLine(
"Number of fields in select statement does not match setDim");
63 string[] keys =
new string[setDim];
66 for(
intidx = 0; idx < setDim; idx++)
67keys[idx] = reader.GetString(idx);
74Console.WriteLine(
"Error: Failed to retrieve the required data from the database.\n{0}", ex.Message);
83 static voidReadParameter(OleDbConnection connect,
GAMSDatabasedb,
stringstrAccessSelect,
stringparName,
intparDim,
stringparExp =
"")
87OleDbCommand cmd =
newOleDbCommand(strAccessSelect, connect);
90OleDbDataReader reader = cmd.ExecuteReader();
92 if(reader.FieldCount != parDim+1)
94Console.WriteLine(
"Number of fields in select statement does not match parDim+1");
100 string[] keys =
new string[parDim];
101 while(reader.Read())
103 for(
intidx = 0; idx < parDim; idx++)
104keys[idx] = reader.GetString(idx);
106a.
AddRecord(keys).
Value= Convert.ToDouble(reader.GetValue(parDim));
111Console.WriteLine(
"Error: Failed to retrieve the required data from the database.\n{0}", ex.Message);
126 stringstrAccessConn =
@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ Path.Combine(ws.
SystemDirectory,
@"apifiles/Data/transport.accdb");
127OleDbConnection connection =
null;
130connection =
newOleDbConnection(strAccessConn);
134Console.WriteLine(
"Error: Failed to create a database connection. \n{0}", ex.Message);
139ReadSet(connection, db,
"SELECT Plant FROM Plant",
"i", 1,
"canning plants");
140ReadSet(connection, db,
"SELECT Market FROM Market",
"j", 1,
"markets");
143ReadParameter(connection, db,
"SELECT Plant,Capacity FROM Plant",
"a", 1,
"capacity of plant i in cases");
144ReadParameter(connection, db,
"SELECT Market,Demand FROM Market",
"b", 1,
"demand at market j in cases");
145ReadParameter(connection, db,
"SELECT Plant,Market,Distance FROM Distance",
"d", 2,
"distance in thousands of miles");
150 static voidWriteVariable(OleDbConnection connect,
GAMSDatabasedb,
stringvarName, params
string[] Domains)
155 if(Domains.Length != var.Dim)
157Console.WriteLine(
"Number of column names does not match the dimension of the variable.");
164OleDbCommand cmd =
newOleDbCommand(
"drop table "+ varName, connect);
167cmd.ExecuteNonQuery();
173String query =
"create table "+ varName +
"(";
174 foreach(
stringdom
inDomains)
175query += dom +
" varchar(64), ";
176query +=
"lvl double)";
178cmd.CommandText = query;
179cmd.ExecuteNonQuery();
183query =
"insert into "+ varName +
"(";
184 foreach(
stringdom
inDomains)
185query += dom +
", ";
186query +=
"lvl) values (";
187 foreach(
stringkey
inrec.Keys)
188query +=
"'"+ key +
"', ";
189query += rec.Level +
")";
190cmd.CommandText = query;
191cmd.ExecuteNonQuery();
196Console.WriteLine(
"Error: Failed to write variable to the database.\n{0}", ex.Message);
208 stringstrAccessConn =
@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ Path.Combine(ws.
SystemDirectory,
@"apifiles/Data/transport.accdb");
209OleDbConnection connection =
null;
212connection =
newOleDbConnection(strAccessConn);
216Console.WriteLine(
"Error: Failed to create a database connection. \n{0}", ex.Message);
221WriteVariable(connection, db,
"x",
"i",
"j");
225 staticString GetModelText()
233 a(i) capacity of plant i in cases 234 b(j) demand at market j in cases 235 d(i,j) distance in thousands of miles 236 Scalar f freight in dollars per case per thousand miles /90/; 238$if not set gdxincname $abort 'no include file name for data file provided' 243 Parameter c(i,j) transport cost in thousands of dollars per case ; 245 c(i,j) = f * d(i,j) / 1000 ; 248 x(i,j) shipment quantities in cases 249 z total transportation costs in thousands of dollars ; 251 Positive Variable x ; 254 cost define objective function 255 supply(i) observe supply limit at plant i 256 demand(j) satisfy demand at market j ; 258 cost .. z =e= sum((i,j), c(i,j)*x(i,j)) ; 260 supply(i) .. sum(j, x(i,j)) =l= a(i) ; 262 demand(j) .. sum(i, x(i,j)) =g= b(j) ; 264 Model transport /all/ ; 266 Solve transport using lp minimizing z ;RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4