如何获得?

时间:2018-07-29 11:11:05

标签: gams-math

我有一个j和参数边。我也有一张图。

    Set j/1*5/;
   Alias(j,jp);

   Parameter edge(j,jp)

如果j到jp之间存在弧,则edge(j,jp)= 1;如果j到jp之间没有弧,则edge(j,jp)为0。  我做了edge(j,jp)。

我想定义一个集合或参数,以保存节点“ j”的邻域索引。

我的意思是,邻域(j)= {jp:边(j,jp)= 1}

我在命令下面写,但出现错误。

  Set  neighborhood (j)
  Neighborhood (j)$edge (j,jp) =JP.val;

如何获得特殊节点的邻域?

1 个答案:

答案 0 :(得分:1)

您是否使用有向图并假设每个j仅有一个邻居?然后,尝试以下方法:

Set j/1*3/;
Alias(j,jp);

Parameter edge(j,jp) / 1.2 1, 2.3 1, 3.1 1 /;

Parameter Neighborhood (j);
Neighborhood (j) = sum(jp$edge(j,jp), jp.val);

否则:如果邻居不止一个,您希望在邻里看到什么?