мой вопрос связан с моим предыдущим вопросом. Я должен внести некоторые изменения в свой код. У меня есть количество узлов от 1 до 100 в файле CSV. Я создаю еще один файл CSV и генерирую 20 случайных чисел между 100 узлами и называю их точками спроса. Каждая из этих точек спроса имеет определенные требования, которые случайным образом генерируются числами от 1 до 10. Я хочу прочитать эти точки спроса (индексы) и их веса. это первая часть моего вопроса? как я могу это прочитать? После этого мне нужно иметь расстояние между каждой из этих точек спроса и всеми узлами. Я не знаю, как я могу просто прочитать индексы точек спроса и вычислить расстояние между ними и всеми узлами. Исходя из предоставленного мною кода, мне нужны индексы точек спроса для множества мест. Моя основная проблема в том, что я не знаю, как мне получить эти индексы в Cplex через файл CSV. Точки спроса с изображением их требований: первый столбец - это индекс точки спроса, а второй столбец - их потребности в этом файле 200 строк
Я пробовал этот код для чтения точек спроса:
tuple demands
{
int demandpoint;
int weight;
}
{demands} demand={};
execute
{
var f=new IloOplInputFile("weight.csv");
while (!f.eof)
{
var data = f.readline().split(",");
if (ar.length==2)
demand.add(Opl.intValue(ar[0]),Opl.intValue(ar[1]));
}
f.close();
}
execute
{
writeln(demand);
}
но это неправда.
int n=100;
int p=5;
tuple demands
{
int demandpointindex;
int weight;
}
{demands} demand={};
execute
{
var f=new IloOplInputFile("weight.csv");
while (!f.eof)
{
var data = f.readline().split(",");
if (ar.length==2)
demand.add(Opl.intValue(ar[0]),Opl.intValue(ar[1]));
}
f.close();
}
execute
{
writeln(demand);
}
float d[demandpointindexes][facilities];
execute {
var f = new IloOplInputFile("test1.csv");
while (!f.eof) {
var data = f.readline().split(",");
if (data.length == 3)
d[Opl.intValue(data[0])][Opl.intValue(data[1])] = Opl.floatValue(data[2]);
}
writeln(d);
}
dvar boolean x[demandpointindexe][facilities];
...