Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在OPL ILOG studio上正确加载2×2矩阵而不出错?_Java_Cplex_Opl - Fatal编程技术网

Java 如何在OPL ILOG studio上正确加载2×2矩阵而不出错?

Java 如何在OPL ILOG studio上正确加载2×2矩阵而不出错?,java,cplex,opl,Java,Cplex,Opl,我正在从oplstudio中的数据文件加载一个2乘2的矩阵,并使用以下脚本 P=5; Customers={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41",

我正在从oplstudio中的数据文件加载一个2乘2的矩阵,并使用以下脚本

P=5;
Customers={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50"};
Warehouses={"A","B","C","D","E"};
Demand=[3,14,1,14,19,2,14,6,7,6,10,18,3,6,20,4,14,11,19,15,15,4,13,13,5,16,3,7,14,17,3,3,12,14,20,13,10,9,6,18,7,20,9,1,8,5,1,7,9,2];
prepare { 
   function read(element, name) {
      var customDataSource = 
IloOplCallJava("externaldatasource.SimpleTextReader","<init>", "(Ljava.lang.String;Ljava.lang.String;)V","C:/Users/Brian/opl/ccp/data.txt", ",");
      customDataSource.fillOplElement(element);
      return true;
   }   
}

Distance = invoke read;

我使用OPL文档开发了上面的脚本,您可以在模型中进行解析。 假设您的文本位于toto.txt中

int N=10;

execute
{
var f=new IloOplInputFile("toto.txt");
var str1=f.readline();
var str2=f.readline();
var rank=1;
while (!f.eof)
{
var str=f.readline();
while (str.charAt(0)==" ") str=str.substring(1);
writeln(str);
var ar=new Array(N+1);
var arindex=0;
while (str.indexOf(" ")!=-1)
{
   ar[arindex]=str.substring(0,str.indexOf(" "));
   writeln(ar[arindex]);
   str=str.substring(str.indexOf(" ")+1);
   while (str.charAt(0)==" ") str=str.substring(1);
   arindex++;
}

ar[arindex]=str;
writeln(ar[arindex]);
rank++;
}
f.close();
}
我会解析你所有的数字,然后你可以做任何你需要的事情 问候

int N=10;

execute
{
var f=new IloOplInputFile("toto.txt");
var str1=f.readline();
var str2=f.readline();
var rank=1;
while (!f.eof)
{
var str=f.readline();
while (str.charAt(0)==" ") str=str.substring(1);
writeln(str);
var ar=new Array(N+1);
var arindex=0;
while (str.indexOf(" ")!=-1)
{
   ar[arindex]=str.substring(0,str.indexOf(" "));
   writeln(ar[arindex]);
   str=str.substring(str.indexOf(" ")+1);
   while (str.charAt(0)==" ") str=str.substring(1);
   arindex++;
}

ar[arindex]=str;
writeln(ar[arindex]);
rank++;
}
f.close();
}