可以在AMPL中使用集的乘法吗?

时间:2018-08-14 16:59:43

标签: ampl

我正在尝试为图形问题编写模型。 我定义了用于标记边缘的成对设置。因为我需要找到一些边缘之间的内积。更精确地:

假设E是一组边,我定义了:

在E交叉E内设置N;

例如,如果E = {1,2,3},则N可以是:{(2,3),(1,2)} 即我需要找到边缘1和边缘3之间以及边缘1和边缘2之间的内积。

我的问题不是我必须将顶点的相关边线。 例如,假设V = {v1,v2,v3,v4,v5}是一组顶点。边缘1在v1和v3之间,边缘2在v2和v3之间。

我需要定义另一个成对集合,例如: 在V交叉V内设置N; 但是我需要确定其背后的边缘。例如,如果M = {((1,3),(2,3)}},我需要第三列来确定第一对属于边1,第二对属于边2。 我如何在AMPL中做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以这样做:

set vertices;
set edgenames;
set edges_with_vertices within edgenames cross vertices cross vertices;

对于edge_with_vertices中的任何三元组,第一个元素是边名称,第二个和第三个元素是终顶点。