首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从文件中读取单个参数?

如何从文件中读取单个参数?
EN

Stack Overflow用户
提问于 2018-07-10 16:01:46
回答 2查看 586关注 0票数 0

AMPL书第9章第163页给出了从文件中读取单个参数的示例:

例如,如果您想阅读我们的简单生产模型的周数和每周可用的小时数(图4-4), param T > 0; param avail {1..T} >= 0; 从包含week_data.txt的文件 4 40 40 32 40 然后您可以发出命令 read T, avail[1], avail[2], avail[3], avail[4] <week_data.txt;

此命令在带有错误colon missing where expected的GLPK中失败。建模语言GNU MathProg语言引用仅包含用于读取表格数据的table data IN。GLPK能从文件中读取单个参数吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-23 15:41:45

AMPL和GMPL是相关的功能语言。GMPL包含AMPL语法的子集,但在表语句等几个方面有所不同。

读取单个参数的一种方法是将数据写入具有特定语法的文件,例如,下面的内容显示一个参数和一个表:

代码语言:javascript
运行
复制
param T := 4;

param avail :=
      1 0
      2 1
      3 1
      4 0;

end;

要验证语法,请考虑文件problem.mod中的代码

代码语言:javascript
运行
复制
param T > 0;

param avail {1..T} >= 0;

var use {1..T} >= 0;

maximize usage: sum {t in 1..T} avail[t];

subject to constraint {t in 1..T}: use[t] <= avail[t];

solve;

end;

结果表明,它起了作用:

代码语言:javascript
运行
复制
> glpsol -m problem.mod -d problem.dat
GLPSOL: GLPK LP/MIP Solver, v4.65
Parameter(s) specified in the command line:
 -m problem.mod -d problem.dat
Reading model section from problem.mod...
13 lines were read
Reading data section from problem.dat...
9 lines were read
Generating usage...
Generating constraint...
Model has been successfully generated
glp_mpl_build_prob: row usage; constant term 2 ignored
GLPK Simplex Optimizer, v4.65
5 rows, 4 columns, 4 non-zeros
Preprocessing...
~     0: obj =   2.000000000e+00  infeas =  0.000e+00
OPTIMAL SOLUTION FOUND BY LP PREPROCESSOR
Time used:   0.0 secs
Memory used: 0.1 Mb (110236 bytes)
Model has been successfully processed
票数 0
EN

Stack Overflow用户

发布于 2018-07-13 17:57:46

可以使用table语句从CSV文件或SQL表中读取参数。

您可以使用数据文件传递参数,例如,请参阅用AWK和Visual编写数据文件的示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51269771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档