Передать набор в кортеже в массив в CPLEX? - PullRequest
0 голосов
/ 05 ноября 2019
{route} Routes ={
<1,{1,3},{8,5}>,
<2,{2,3},{7,9}>
};

Можно ли извлечь последний набор из двух кортежей в виде двумерного массива с первым кортежем в качестве индекса из Routes? Если индекс не отображается в первой матрице, задайте ему 0 в матрице

Что означает,

Arr=[
[8,0,5],
[0,7,9]
]

1 Ответ

1 голос
/ 05 ноября 2019
tuple route
{
key int r;
{int} s1;
{int} s2;
}

{route} Routes ={
<1,{1,3},{8,5}>,
<2,{2,3},{7,9}>
};

sorted {int} indexes1={i.r | i in Routes};
sorted {int} indexes2=union (i in Routes) i.s1;

int res[i in indexes1][j in indexes2]=(j in item(Routes,<i>).s1)
    ?item(item(Routes,<i>).s2,ord(item(Routes,<i>).s1,j))
    :0;

execute
{
writeln(indexes1);
writeln(indexes2);
writeln(res);
} 

т

{1 2}
 {1 2 3}
 [[8 0 5]
         [0 7 9]]
...